強式名稱組件

強式命名組件會為組件建立唯一識別,並可防止發生組件衝突。

構成強式名稱的組件之項目為何?

強式名稱的組件是透過私密金鑰所產生,該私密金鑰對應至隨組件或當做組件本身散發的公開金鑰。 該組件包含組件資訊清單,其中包含構成組件之所有檔案的名稱和雜湊。 具有相同強式名稱的組件應該是相同的。

您可以使用 Visual Studio 或命令列工具強式命名組件。 如需詳細資訊,請參閱 如何:使用強式名稱簽署元件 ,或 Sn.exe (強式名稱工具)

建立強式名稱的組件時,會包含組件的簡單文字名稱、版本號碼、文化特性資訊 (選擇性)、數位簽章,以及對應至用於簽署之私密金鑰的公開金鑰。

警告

請勿依賴強式名稱提供安全性。 強式名稱僅提供唯一識別。

為什麼需要強式命名您的組件?

針對.NET Framework,強式名稱元件在下列案例中很有用:

  • 您想要啟用組件以供強式名稱的組件參考,或者您想要授與 friend 存取權,以從其他強式名稱的組件存取您的組件。

  • 應用程式需要存取相同組件的不同版本。 這表示您需要不同版本的元件,才能並排在相同的應用程式域中載入,而不會發生衝突。 例如,如果組件中存在具有相同簡單名稱的不同應用程式開發介面擴充模組,強式命名會為每個組件版本提供唯一識別。

  • 您不希望在使用組件時,對應用程式效能造成負面影響,因此想要使用領域中性的組件。 由於領域中性的組件必須安裝在全域組件快取中,因此需要對其強式命名。

  • 您想要套用發行者原則來集中處理應用程式的服務,這表示元件必須安裝在全域組件快取中。

針對 .NET Core 和 .NET 5+,強式名稱元件不提供具體優點。 執行時間永遠不會驗證強式名稱簽章,也不會使用強式名稱進行元件系結。

如果您是開放原始碼開發人員,而且想要強名稱元件的身分識別優點,以便與.NET Framework有更好的相容性,請考慮簽入與元件相關聯的私密金鑰到原始檔控制系統。

另請參閱