給主程序添加簽名


添加完成后會自動生成一個*.pfx文件。


給程序添加強簽名方法:
本文以Quartz.dll為例,使用vs Tools下的工具命令。



打開命令工具是這個樣子,



第一步:生成隨機密鑰對,
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>sn -k QuartzSnk.snk
第二步:將DLL文件反編譯成IL中間語言文件
生成的結果文件為Quartz.il,Quartz.res,Quartz.quartz.config,Quartz.Impl.AdoJobStore.Common.dbproviders.properties,Quartz.Xml.job_scheduling_data_2_0.xsd
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC> ildasm E:\DllSnk\Quartz.dll /out:E:\DllSnk\Quartz.il
第三步:將簽名密鑰寫入到DLL中。(注意dll文件名是否重名,可以先寫一個不沖突名稱合成dll,然后再修改)
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC> ilasm E:\DllSnk\Quartz.il /res:E:\DllSnk\Quartz.res /dll /key:QuartzSnk.snk /out:E:\DllSnk\Quartz2.dll
第四步:檢查剛才簽名是否正確有效。
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC> sn -vf E:\DllSnk/Quartz2.dll特別注意:在簽名DLL的時候路徑一定不要太長,否則任何一步操作都會失敗。最好在磁盤根目錄下創建一個文件夾,將需要簽名的DLL放到這里進行簽名合成。如我寫成這樣,提示我“指定了多個輸入文件”ildasm D:\Documents\Visual Studio 2013\Source\Bitbucket_Git\AutoUpdate\AutoUpdater\DLL\Quartz.dll /out:E:\DllSnk\Quartz.il