1. 程式人生 > >【轉】引用程序集沒有強名稱解決辦法

【轉】引用程序集沒有強名稱解決辦法

密鑰 新的 tro 進行 arch 隨機 引用 width 其他

原文地址:https://www.cnblogs.com/tearer/archive/2010/09/01/1814655.html

為項目添加強名稱方法:
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文件重新引入到項目中然後編譯。

【轉】引用程序集沒有強名稱解決辦法