引用程序沒有強命名

1.打開SDK 命令提示窗口;  也就是VS2012 開發人員命令提示,一般所在目錄C:\ProgramData\Microsoft

\Windows\Start Menu\Programs\Microsoft Visual Studio 2012\Visual Studio Tools


2.創建一個新的隨機密鑰對:直接輸入下面的 名字和你的Dll名字一樣,他這的名字是Interop.Scripting.Dll然後下面就那樣
  sn -k Interop.Scripting.snk


3.反編譯目標程序集,2完成之後在C:\Program Files (x86)\Microsoft Visual Studio 11.0目錄下面

看snk是否存在,然後再把原來的Interop.Scripting.Dll拷貝到和snk同名的文件夾下,然後執行下面的命令
  ildasm Interop.Scripting.dll /out=Interop.Scripting.il
  

3.重新編譯,附帶強命名參數,執行上面命令之後刪除Interop.Scripting.Dll,然後執行下面命令
  ilasm Interop.Scripting.il /dll /resource=Interop.Scripting.res /key=Interop.Scripting.snk /optimize


  

4.驗證簽名信息,上面命令執行完成之後會重新生成個dll所以就用這個就OKle
  sn -v Interop.Scripting.dll
  OK,將生成的dll文件重新引入到項目中然後編譯。

首先打開visual studio 2005命令提示(開始-->程序-->microsoft visual studio 2005-->visual studio  tools-->visual studio 2005命令提示),在其中輸入:sn  -k  PetShop.IBLL.snk回車,這樣就生成了 PetShop.IBLL.snk,在路徑C:/Program Files/Microsoft Visual Studio 8/VC找到 PetShop.IBLL.snk文件,放在IBLL項目的根目錄也就是IBLL目錄下,然後打開BLL項目的AssemblyInfo.cs,在裏面加入如下代碼行:[assembly: AssemblyKeyFile("PetSHop.IBLL.snk")], 然後重新生成PetShop.IBLL項目,這樣一個強命名的程序集就生成了。

這個應該使用 程序集的屬性 有個簽名的  吧簽名文件添加進去,把延遲簽名去掉就好了

手動添加全局應用程序 緩存

方法一:(如果裝有vs2003或是vs2008)


打開命令提示工具


1.把程序集添加GAC中: GACUtil /i sample.dll (參數/i是安裝的意思)
2
.把程序集移出GAC GACUtil /u sample.dll (參數/u就移除的意思)
注意:不能將一個弱命名程序集安裝GAC中。


方法二:


管理工具->Microsoft   .NET   Framework   2.0   配置->管理->我的電腦->程序集緩存->選中右鍵“添加”->將程序集添加到程序集緩存.
發佈了28 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章