2010-11-22 75 views
10

我理解簽署程序集的基本思想,但在使用Telerik或第二方DLL時會遇到問題。 我有一個使用我自己的.DLL文件的.exe文件,這些DLL反過來使用企業庫DLL和Telerik DLL。用強名稱簽名程序集,好的,但如果某些第三方DLL未簽名會怎樣?

我給了我所有的項目一個強大的名稱.snk,但編譯時編譯器解釋說企業庫DLLs沒有簽名,這是有道理的。

我不想關閉使用te sn.exe -Vr命令進行的驗證,或者甚至延遲簽名我的項目。但是,這是如何工作的?我很感激任何見解。

回答

4

這是不方便的,但不是火箭科學簽署/辭職的第三方大會。 假設你想籤一個無符號的dll像System.ComponentModel.Composition.dll與default.snk鍵:

打開VS命令提示符,cd到你的文件夾的無符號的DLL(S)

 
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

+0

簽署通過nuget軟件包安裝的組件嗎? – Vivekh 2016-05-03 09:35:10

+0

如果'.res'文件是由'ildasm'創建的,請不要忘記'/ resource = somename.res' – n0rd 2017-12-01 19:36:16

相關問題