Форум программистов, компьютерный форум, киберфорум
Psilon
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 1.

Как подписать строгим именем стороннюю сборку для добавления в GAC

Запись от Psilon размещена 23.06.2014 в 12:09
Обновил(-а) Psilon 23.06.2014 в 14:53

Способ немного извращенный, но рабочий и относительно простой.

1. Запускаем командную строку студии. В пуске в папке Visual Studio Tools должна быть "командная строка разработчика", в моем случае - Developer Command Prompt for VS2013. После этого на экране должна появиться надпись:
Код:
C:\Program Files (x86)\Microsoft Visual Studio 12.0>
2. Генерируем файл ключа:
Код:
sn -k C:\keyPair.snk
3. Дизассемблируем библиотеку (предположим, что она лежит в корне диска С). В качестве примера буду писать Interop.MSUtil.dll (библиотечку от МС, содержащую АПИ для парса логов IIS, но может быть любая dll)
Код:
ildasm C:\Interop.MSUtil.dll /out:C:\Interop.MSUtil.il
4. (необязательно) Переименовываем оригинальную dll, просто на всякий случай
Код:
ren C:\Interop.MSUtil.dll C:\Interop.MSUtil.dll.bak
5. Компилируем полученную сборку и подписываем:
Код:
ilasm C:\Interop.MSUtil.il /dll /key=C:\keyPair.snk /optimize
Эта команда скомпилирует dll с последней версией фреймворка. Для компиляции опредленной версией фреймворка нужно указывать нужый ilasm, например, в случае ilasm 2.0:
Код:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe C:\Interop.MSUtil.il /dll /key=C:\keyPair.snk /optimize
в результате получаем примерно такой лог:
Код:
...
Class 98        Props: 8;
Class 99
Method Implementations (total): 476
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Signing file with strong name
Operation completed successfully

C:\Program Files (x86)\Microsoft Visual Studio 12.0>
и подписанную сборку. Радуемся и добавляем в GAC.
Код:
gacutil /i C:/Interop.MSUtil.dll
получаем такой вывод:
Код:
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.33440
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly successfully added to the cache

C:\Program Files (x86)\Microsoft Visual Studio 12.0>
Всем добра!
Размещено в Без категории
Просмотров 1226 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.