共用方式為


CA2210:組件應包含有效的強式名稱

型別名稱

AssembliesShouldHaveValidStrongNames

CheckId

CA2210

分類

Microsoft.Design

中斷變更

不中斷

原因

未使用強式名稱簽署的組件、無法驗證強式名稱,或者不具有電腦上目前登錄設定的強式名稱便為無效。

規則描述

這項規則會擷取及驗證組件的強式名稱。如果符合下列任一項,則會發生違規:

  • 組件沒有強式名稱。

  • 簽署之後改變了組件。

  • 組件是延遲簽署。

  • 不正確地簽署組件,或簽署失敗。

  • 組件需要登錄設定才能傳遞驗證。例如,強式名稱工具 (Sn.exe) 會用於略過組件的驗證工作。

強式名稱可避免用戶端在不知情的狀況下,載入已遭他人修改的組件。除了極少數的案例以外,您都應該避免部署沒有強式名稱的組件。如果您共用或散發未正確簽署的組件,表示這個組件或許已遭他人修改,Common Language Runtime 可能不會載入組件,或是使用者可能必須停用電腦上的驗證作業。沒有強式名稱的組件具有下列缺點:

  • 無法驗證該組件的來源。

  • 如果組件的內容已變更,Common Language Runtime 無法對使用者發出警告。

  • 無法載入這個組件至全域組件快取。

請注意,若要載入並分析延遲簽署的組件,您必須停用組件的驗證作業。

如何修正違規

若要建立金鑰檔

請使用下列其中一種程序:

若要在 Visual Studio 中以強式名稱簽署組件

  1. 在 Visual Studio 中開啟方案。

  2. 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後按一下 [屬性]。

  3. 按一下 [簽署] 索引標籤,然後選取 [簽署組件] 核取方塊。

  4. 從 [選擇強式名稱金鑰檔],選取 [新增]。

    [建立強式名稱金鑰] 視窗隨即顯示。

  5. 在 [金鑰檔名稱] 中,輸入強式名稱金鑰的名稱。

  6. 選擇是否要以密碼保護金鑰,然後按一下 [確定]。

  7. 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後按一下 [建置]。

若要在 Visual Studio 外以強式名稱簽署組件

隱藏警告的時機

只有在不必擔心內容是否會遭他人竄改的環境中使用這個組件時,您才可以放心地隱藏這項規則的警告。

請參閱

工作

HOW TO:使用強式名稱簽署組件

參考

Sn.exe (強式名稱工具)

System.Reflection.AssemblyKeyFileAttribute

System.Reflection.AssemblyKeyNameAttribute