Подписывая сборки с сильным именем, хорошо, но что, если какая-то сторонняя 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