Подписывая сборки с сильным именем, хорошо, но что, если какая-то сторонняя DLL не подписана?
Я понимаю основную идею подписания сборок, но имею проблему при использовании Telerik или двух сторонних DLL.
У меня есть .exe, который использует 2 моих собственных .DLLs, DLL, в свою очередь, используют библиотеки DLL Enterprise Library и DLL Telerik.
Я дал всем моим проектам сильное имя .snk, но при компиляции компилятор объясняет, что DLL корпоративной библиотеки, например, не подписаны, что имеет смысл.
Я не хочу отключать проверку с помощью команды te sn.exe -Vr или даже задерживать подписывать мои проекты. Но тогда как это будет работать? Я благодарен за понимание.
Ответы
Ответ 1
Это неудобно, но не ракетостроение, чтобы подписать/уйти в отставку сторонних собраний.
Предполагая, что вы хотите подписать dll без знака, например System.ComponentModel.Composition.dll, с ключом default.snk:
откройте командную строку VS и cd в вашей папке с dll (-ами) без знака
ildasm /all /out=System.ComponentModel.Composition.il System.ComponentModel.Composition.dll
ilasm /dll /key=default.snk System.ComponentModel.Composition.il
del System.ComponentModel.Composition.il
В каждом применимом проекте VS удалите и добавьте ссылку на подписанную сборку System.ComponentModel.Composition.dll
Ответ 2
Да, вполне возможно.
Вот шаги.