1. 程式人生 > >Asp.net中強簽名dll:引用程式集沒有強名稱解決辦法

Asp.net中強簽名dll:引用程式集沒有強名稱解決辦法

本文呢,意在和大家共同學習一下如何對自己的Dll檔案實現強簽名,在一定程度上防止別人反編譯和破解,具體為專案新增強名稱方法如下三步走:
1.右鍵單擊專案,開啟屬性視窗;
2.在屬性窗口裡選擇《簽名》標籤,選中為程式集簽名的選項,在下拉列表裡選擇新建,如下圖所示:

 


3.開啟新建簽名視窗,輸入簽名的名稱密碼等內容


為沒有原始碼的DLL檔案新增強名稱 
如果專案中引用了其他沒有原始碼的dll檔案,並且此dll檔案是沒有強名稱的程式集,則編譯時會出現類似 "Assembly generation failed -- 引用的程式集 'xxxxxxxxxxx' 沒有強名稱" 這樣的錯誤。
我這裡引用的是Interop.Scripting.dll程式集,它不是強名稱的,則需要進行以下操作:
1.開啟SDK 命令提示視窗;
2.建立一個新的隨機金鑰對:
sn -k Interop.Scripting.snk
3.反編譯目標程式集
ildasm Interop.Scripting.dll /out=Interop.Scripting.il
3.重新編譯,附帶強命名引數
ilasm Interop.Scripting.il /dll /resource=Interop.Scripting.res /key=Interop.Scripting.snk /optimize
4.驗證簽名信息
sn -v Interop.Scripting.dll 
OK,將生成的dll檔案重新引入到專案中然後編譯。