Загрузка сборки из любой версии - PullRequest
2 голосов
/ 11 февраля 2010

Я ссылаюсь на подписанную сборку. Во время выполнения я могу работать с любой версией этой сборки, а не только с той, которую я скомпилировал.

Как этого добиться?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2010

Нет, это не сработает. CLR проверит номер версии сборки, ожидая получить тот, с которым была скомпилирована ваша основная программа. Вам придется использовать элемент <bindingRedirect> в файле app.config, чтобы убедить его в том, что с другой версией все в порядке.

Это скользкий склон. Измените атрибут [AssemblyVersion] только в том случае, если изменился открытый интерфейс сборки и требуется перекомпиляция клиентов. Теперь вы получите исключение, которое идентифицирует реальную проблему. Это еще один вид скользкого склона, но у вас будет гораздо больше контроля.

Для сравнения, так работают все базовые сборки в .NET Framework. Между .NET 2.0 RTM и 3.5 SP1 было много версий, включая множество невидимых исправлений. Но [AssemblyVersion] по-прежнему 2.0.0.0, Microsoft только изменяет [AssemblyFileVersion].

0 голосов
/ 11 февраля 2010

В IDE, убедитесь, что для "Specific Version" установлено значение false для ссылки, или добавьте <SpecificVersion>False</SpecificVersion> к ссылке в csproj.

...