Подтвердить что ты не робот

Использование неподписанных сборок в подписанных

нашли эти полезные ссылки с точностью до SO.

http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

Как исправить "Связанная сборка не имеет сильного имени" ошибка?

Я следую процессу. Это кажется достаточно простым. Просто интересно, есть ли автоматизированный инструмент "точка-и-клик", который сделает это для меня - особенно в случае, когда unsigned 3rd party A.dll ссылается на unsigned B.dll, который ссылается на unsigned C.dll.

4b9b3361

Ответ 1

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

Сделайте это, разобрав сборку в ИЛ, а затем соберите ее с помощью собственного файла с сильным именем.

Откройте командную строку Visual Studio и перейдите в каталог, содержащий вашу неподписанную сборку. Выполните следующие команды из командной строки.

ildasm.exe /all /typelist /out=My.Unsigned.Assemby.il My.Unsigned.Assemby.dll

Это создаст версию IL сборки под названием My.Unsigned.Assemby.il

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

ilasm.exe /dll /optimize /key=MyKeyFile.snk My.Unsigned.Assemby.il

Теперь вы получите ту же сборку, что и ее подписанная версия. Вы можете больше узнать о сильном ключевом ключевом ключе, но я предполагаю, что вы уже знаете, как это сделать на основе вопроса.

ОБНОВЛЕНИЕ: Я написал приложение, чтобы сделать это автоматически из пользовательского интерфейса, командной строки или программно через API. Он обрабатывает все граничные случаи, а также собирает обратно правильную версию с правильными флагами. Вы можете узнать больше об этом и скачать инструмент здесь: http://brutaldev.com/post/2013/10/18/NET-Assembly-Strong-Name-Signer