C#進階編程-共用組件強命名

來源:互聯網
上載者:User

     首先記一下查看程式集的命令:命令列輸入ildasm,這是一個反組譯工具。此外,.net Reflector也是剖析器集的強大工具,可以將IL代碼
反編譯為C#,C++,VB。網址http://www.aisto.com/roeder/dotnet。 

     言歸正傳了,共用組件需要進行強命名。要利用sn.exe產生金鑰組。具體步驟:

  1. 建立類庫,命名空間為Sharing,與建立普通類庫過程一致。
  2. 建立強命名:產生公開金鑰與私密金鑰對,並對私密金鑰做嚴格的保護。
       ①可以項目屬性-》Signing->Sign the assembly,然後選擇或者添加pfx檔案即可。
       ②使用命令列工具:
       產生:sn -k e:\Study\AssemblyShared\Sharing\test1.keys 注意後面的路徑要寫明檔案的完整路徑。剛開始的時候總是fail,就是這個路徑寫的有問題導致的。  
  3. 查看公開金鑰:sn -p  e:\Study\AssemblyShared\Sharing\test1.keys  e:\Study\AssemblyShared\Sharing\test1.key
  4. 然後使用 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 取消所有驗證

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.