BindingRedirect для другого имени сборки - PullRequest
22 голосов
/ 19 августа 2009

Вы можете использовать BindingRedirect для перенаправления YourAssembly.dll 1.1.0.0 в 1.2.0.0.

Кто-нибудь знает, возможно ли это сделать, если имена сборок отличаются.

например.

YourAssembly1.dll (v1.1) перенаправляет на YourAssembly2.dll (v2.8)

Ответы [ 3 ]

9 голосов
/ 01 мая 2013

Если я правильно помню, я сделал это около 4 лет назад, используя событие AppDomain.AssemblyResolve . Идея в том, что вы получите запрос AssemblyName и вернете Assembly. В некоторых случаях я даже смог создать DynamicAssembly во время выполнения и внедрить его. Я забыл, как на это влияет сильное именование.

0 голосов
/ 01 мая 2013

Это не должно быть возможно из-за того, что ваше собственное приложение имеет ссылку на YourAssembly1.

Когда среда выполнения загружает ваше приложение, оно пытается загрузить сборку YourAssembly1.dll (применяя перенаправление проб и версий) и, следовательно, не может загрузить сборку YourAssembly2.

0 голосов
/ 01 мая 2013

Используйте ILDASM и ILASM для декомпиляции, изменения и перекомпиляции исходной сборки, чтобы она ссылалась на YourAssembly2.dll.

Мне пришла в голову идея, и я сделал пару поисков, чтобы убедиться, что это возможно. См. Можно ли изменить манифесты сборки, кроме как путем взлома ILDASM / ILASM? и http://forums.asp.net/t/1582934.aspx/1

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