Share via


HOW TO:參考強式名稱簽署組件

參考強式名稱組件的型別或資源的處理序 (Process) 通常是透明的。 您可以在編譯期間 (早期繫結) 或執行階段進行參考。

當您向編譯器指出您的組件明確參考其他組件時,便會發生編譯期間參考。 使用編譯期間參考時,編譯器會自動取得目標強式名稱組件的公開金鑰,並將該金鑰放入正在進行編譯之組件的組件參考中。

注意事項注意事項

強式名稱組件只能使用來自其他強式名稱組件的型別。否則,此強式名稱組件的安全性將受到威脅。

若要對強式名稱的組件進行編譯期間參考

  • 在命令提示字元中輸入下列命令:

    <compiler command> /reference:<assembly name>

    在這個命令中,compiler command 是您使用的語言的編譯器命令,而 assembly name 則為被參考的強式名稱組件的名稱。 您也可以使用其他編譯器選項,例如 /t:library 選項,來建立程式庫組件。

下列範例建立 myAssembly.dll 組件,它參考來自 myAssembly.cs 程式庫模組的 myLibAssembly.dll 強式名稱組件。

csc /t:library myAssembly.cs /reference:myLibAssembly.dll

若要對強式名稱的組件進行執行階段參考

  • 當您對強式名稱組件進行執行階段參考 (例如使用 Assembly.LoadAssembly.GetType 方法) 時,必須使用所參考強式名稱組件的顯示名稱。 顯示名稱的語法如下:

    <assembly name>, <version number>, <culture>, <public key token>

    例如:

    myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33 
    

    在這個範例中,PublicKeyToken 是十六進位格式的公開金鑰語彙基元。 如果沒有文化特性值,則使用 Culture=neutral。

下列程式碼範例說明如何使用這項資訊和 Assembly.Load 方法。

Dim myDll As Assembly = _
    Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1")
Assembly myDll =
    Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Assembly^ myDll =
    Assembly::Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");

您可以使用下列強式名稱 (Sn.exe) 命令來列印特定組件的十六進位格式公開金鑰和公開金鑰語彙基元:

sn -Tp <assembly>

如果您擁有公開金鑰檔,則可以使用下列命令 (請注意命令列選項的大小寫不同處):

sn -tp <assembly>

請參閱

概念

建立和使用強式名稱的組件