Перенаправить привязку сборки к пользовательской/неподписанной dll

Проблема

Основная проблема заключается в том, что я хочу отладить сторонний код, чтобы увидеть, как он работает, чтобы я мог заменить его часть.

Можно ли как-то перенаправить привязку, чтобы она не использовала dll в GAC, а вместо этого скомпилировала копию (которая будет либо неподписанной, либо будет иметь другой открытый ключ).


Подробности

Конкретный рассматриваемый элемент - это asp.net mvc, причина в том, что копия dll в gac была оптимизирована и не соответствует правильно исходному коду на исходном сервере Microsoft.

Microsoft выпустила исходный код для asp.net mvc, поэтому я могу загрузить его и скомпилировать dll самостоятельно, но, очевидно, я не могу подписать dll их ключом, я могу подписать его своим собственным ключом, но тогда у него будет другой токен открытого ключа .

Простым ответом было бы сослаться на мою dll в моем приложении и перекомпилировать мое приложение, но тогда мне также придется перекомпилировать любую другую стороннюю dll, которая ссылается на asp.net mvc (например, mvccontrib).


person Chris Chilvers    schedule 28.10.2009    source источник
comment
Получилось ли у вас рабочее решение? У меня именно эта проблема. Я почти уверен, что есть руководства (блог СкоттГу?) по использованию не-GAC-версии MVC dll, так что кажется, что все части головоломки там...   -  person davidtbernal    schedule 05.04.2011


Ответы (2)



У меня была аналогичная проблема с «исправлением» системы с подписанными dll / exe с задержкой. Несмотря на использование sn -Vr *,[PublicKey], произошел сбой с SecurityException: сбой проверки строгого имени. Затем, просмотрев места реестра: HKLM\Software\Microsoft\StrongName\Verification и HKLM\Software\Wow6432Node\Microsoft\StrongName\Verification, оказалось, что в нем есть недопустимые записи. Я удалил недопустимые записи, а затем снова использовал sn (для 64/32 бит), и это сработало как шарм.

person nkanani    schedule 31.05.2013