首先記一下查看程式集的命令:命令列輸入ildasm,這是一個反組譯工具。此外,.net Reflector也是剖析器集的強大工具,可以將IL代碼
反編譯為C#,C++,VB。網址http://www.aisto.com/roeder/dotnet。
言歸正傳了,共用組件需要進行強命名。要利用sn.exe產生金鑰組。具體步驟:
- 建立類庫,命名空間為Sharing,與建立普通類庫過程一致。
- 建立強命名:產生公開金鑰與私密金鑰對,並對私密金鑰做嚴格的保護。
①可以項目屬性-》Signing->Sign the assembly,然後選擇或者添加pfx檔案即可。
②使用命令列工具:
產生:sn -k e:\Study\AssemblyShared\Sharing\test1.keys 注意後面的路徑要寫明檔案的完整路徑。剛開始的時候總是fail,就是這個路徑寫的有問題導致的。
- 查看公開金鑰:sn -p e:\Study\AssemblyShared\Sharing\test1.keys e:\Study\AssemblyShared\Sharing\test1.key
- 然後使用 sn -tp命令可以查看公開金鑰
5.安裝共用組件,使用gacutil /i 命令操作.剛開始會提示使用管理員帳號操作,後來成功。
6.建立項目,使用該共用組件。要注意將引用的屬性LocalCopy設定為false。
7。強命名用到的主要命令:
產生:sn -k keyfile.snk 公開金鑰與私密金鑰對
抽取公開金鑰:sn -p keyfile.snk public.snk 從keyfile中抽取公開金鑰儲存到public.snk檔案中,以對程式集進行遲簽名
跳過驗證:sn -Vr assembly 對assembly在開發用機上進行跳過驗證處理,該assembly不是已簽名的
簽名:sn -r assembly keyfile.snk 對assembly 進行遲簽名,這一步是在發布之前做
取消跳過驗證:sn -Vu assembly 對assembly在開發用機上取消跳過驗證,該assembly這時是已簽名的
或取消所有:sn -Vx 取消所有驗證