HOW TO:參考強式名稱簽署組件
更新:2007 年 11 月
參考強式名稱組件的型別或資源的處理序 (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.Load 或 Assembly.GetType 方法,必須使用參考的強式名稱組件的顯示名稱。顯示名稱的語法如下:
<assembly name>, <version number>, <culture>, <public key token>
例如:
myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33
在這個範例中,PublicKeyToken 是十六進位格式的公開金鑰語彙基元。如果沒有文化特性值,請使用 Culture=neutral。
下列程式碼範例說明如何使用這項資訊和 Assembly.Load 方法。
Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1")
Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1");
您可以使用下列強式名稱工具 (Sn.exe) 命令來列印特定組件的十六進位格式的公開金鑰和公開金鑰語彙基元:
sn -Tp <assembly>
如果您擁有公開金鑰檔,則可以使用下列命令 (請注意命令列選項的大小寫不同處):
sn -tp <assembly>