эталонная сборка GAC с резервной версией - PullRequest
1 голос
/ 10 мая 2011

Мой проект ссылается на версию 2.0.0.0 сборки в GAC. Если версия 2.0.0.0 недоступна, я бы хотел перенаправить / изменить ссылку на номер версии 1.0.0.0.

В некоторых исследованиях были предложены следующие посты, но они не имеют прямого отношения к моему сценарию:
Как обеспечить запасную сборку вместо той, которая не может быть загружена?
Как ссылаться на несколько версий сборки

Я полагаю, что сборкам со строгими именами требовался определенный номер версии, поэтому я не думаю, что сама ссылка может использовать подстановочный знак (*)? Какой самый простой способ решить мой сценарий?

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Решение заключается в использовании bindingRedirect.Очевидно, это работает, если oldVersion выше, чем newVersion, как в моем сценарии.http://www.infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html

Без изменений кода - простое добавление конфигурации.

0 голосов
/ 10 мая 2011

Если вам нужно динамически загрузить произвольные сборки и классы, вы можете использовать Assembly.Load (или один из его вариантов) и Assembly.CreateInstance().

Причина, по которой вам нужно сделать это таким образом, заключается в том, что он допускает позднее связывание. Ссылка на сборку в GAC является сценарием раннего связывания и не может быть изменена как таковая во время выполнения.

...