Перенаправление привязки сборки к нестандартной / неподписанной dll - PullRequest
1 голос
/ 28 октября 2009

Задача

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

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


Подробнее

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

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

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

Ответы [ 2 ]

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

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

0 голосов
/ 28 октября 2009

Вы можете настроить проверку подписи с помощью инструмента SN.EXE .

sn -Vr assembly

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

...