強式名稱組件
強式命名組件會為組件建立唯一識別,並可防止發生組件衝突。
構成強式名稱的組件之項目為何?
強式名稱的組件是透過私密金鑰所產生,該私密金鑰對應至隨組件或當做組件本身散發的公開金鑰。 該組件包含組件資訊清單,其中包含構成組件之所有檔案的名稱和雜湊。 具有相同強式名稱的組件應該是相同的。
您可以使用 Visual Studio 或命令列工具強式命名組件。 如需詳細資訊,請參閱如何:使用強式名稱簽署組件或 Sn.exe (強式名稱工具)。
建立強式名稱的組件時,會包含組件的簡單文字名稱、版本號碼、文化特性資訊 (選擇性)、數位簽章,以及對應至用於簽署之私密金鑰的公開金鑰。
警告
請勿依賴強式名稱提供安全性。 強式名稱僅提供唯一識別。
為什麼需要強式命名您的組件?
針對 .NET Framework,強式名稱的組件在下列情況下很實用:
您想要啟用組件以供強式名稱的組件參考,或者您想要授與
friend
存取權,以從其他強式名稱的組件存取您的組件。應用程式需要存取相同組件的不同版本。 這表示您需要在不起衝突的情況下,在同一個應用程式網域中並存載入組件的不同版本。 例如,如果組件中存在具有相同簡單名稱的不同應用程式開發介面擴充模組,強式命名會為每個組件版本提供唯一識別。
您不希望在使用組件時,對應用程式效能造成負面影響,因此想要使用領域中性的組件。 由於領域中性的組件必須安裝在全域組件快取中,因此需要對其強式命名。
您需要藉由套用發行者原則來集中提供應用程式,換句話說,組件必須安裝在全域組件快取中。
對於 .NET Core 和 .NET 5+,強式名稱組件並未提供具體優點。 執行階段永遠不會驗證強式名稱簽章,也不會對組件繫結使用強式名稱。
如果您是開放原始碼開發人員並需要強式名稱組件的識別優點,以便與 .NET Framework 更加相容,請考慮將與組件相關聯的私密金鑰簽入原始檔控制系統。