Как я могу сказать моему приложению ASP.NET использовать любую версию сборки со строгим именем? - PullRequest
2 голосов
/ 14 мая 2009

У меня есть приложение ASP.NET, которое использует пользовательскую библиотеку .NET (файл .DLL). Этот файл .DLL строго назван. В библиотеке часто происходят небольшие обновления, и я хотел бы иметь возможность обновлять этот .DLL без перекомпиляции приложения. Приложение должно быть предварительно скомпилировано, потому что я не хочу предоставлять его своим клиентам (не то, что его нельзя декомпилировать, но это не главное).

Можно ли это как-то сделать? В настоящее время я просто получаю сообщение об ошибке .DLL имеет неправильную версию.

Ответы [ 3 ]

5 голосов
/ 14 мая 2009

Вы можете предоставить им обновленный файл конфигурации, чтобы идти с новой DLL. Этот конфиг должен иметь собственную политику версий, перенаправляющую запросы от одной dll к другой. См. эту статью для получения дополнительной информации.


На самом деле эта статья содержит больше информации обо всем процессе и различных уровнях, на которых вы можете определить политику версий.

0 голосов
/ 14 мая 2009

Может быть, вы можете просто поместить строго типизированные dll-файлы в gac, end do do dll versioning, чтобы более старая версия была всегда доступна, а новая будет использоваться только новыми скомпилированными приложениями, а более старые приложения будут использоваться их старая версия dll, пока они не будут скомпилированы и развернуты снова.

Надеюсь, это поможет.

0 голосов
/ 14 мая 2009

Вы можете использовать отражение для динамической загрузки сборки во время выполнения. Activator.CreateInstance должен сделать свое дело.

IMyInterface myObject = (IMyInterface)Activator.CreateInstance( "TheAssemblyName",
                                            "TheTypeName",
                                            null )

Если вы используете .Net 3.5, вы можете использовать надстройки и расширяемость. Посмотрите здесь: http://msdn.microsoft.com/en-us/library/bb384241.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...