如果在你的項目中使用了強命名,而這個項目引用的程序集dll,又不是強命名程序集,那這個項目在編譯的時會出現類似:程序集生成失敗 -- 引用的程序集“XXXXXXXXX”沒有強名稱 的錯誤。如果你找不到源代碼,或者不想重新編譯程序,那可以使用如下的方法:
1.打開SDK 命令提示窗口;
2.創建一個新的隨機密鑰對:
sn -k SharpZipLib.snk
3.反編譯目標程序集
ildasm SharpZipLib.dll /out=SharpZipLib.il
4.重新編譯,附帶強命名參數
ilasm SharpZipLib.il /dll /resource=SharpZipLib.res /key=SharpZipLib.snk /optimize
5.驗證簽名信息
sn -v SharpZipLib.dll
OK,將重新生成的dll引入到項目中,重新編譯看看。
這些工具都在哪裏?
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/ilasm.exe
C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin/ildasm.exe
C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin/sn.exe