為沒有源碼的DLL文件添加強名稱
如果項目中引用了其他沒有源碼的dll文件,並且此dll文件是沒有強名稱的程序集,則編譯時會出現類似 "Assembly generation failed -- 引用的程序集 'xxxxxxxxxxx' 沒有強名稱" 這樣的錯誤。
我這里引用的是Interop.Interop.MSScriptControl.dll程序集,它不是強名稱的,則需要進行以下操作:
1.打開SDK 命令提示窗口;
2.創建一個新的隨機密鑰對:
sn -k Interop.Interop.MSScriptControl.snk
3.反編譯目標程序集
ildasm Interop.Interop.MSScriptControl.dll /out=Interop.Interop.MSScriptControl.il
3.重新編譯,附帶強命名參數
ilasm Interop.Interop.MSScriptControlg.il /dll /resource=Interop.Interop.MSScriptControl.res /key=Interop.Interop.MSScriptControl.snk /optimize
4.驗證簽名信息
sn -v Interop.Interop.MSScriptControl.dll
程序用引用別的沒有強命名的程序集進行編譯時候會報錯,這時候要將引用的dll進行強命名。