如果要使用強式名稱簽名組件,您必須擁有公開/私密金鑰組。這個公用和私密密碼編譯金鑰組將在編譯期間用來建立強式名稱的組件。您可以使用強式名稱工具 (Sn.exe) 來建立金鑰組。金鑰組檔案通常會具有 .snk 副檔名。
若要建立金鑰組
請在命令提示字元中鍵入下列命令:
sn -k <file name>
在這個命令中,file name 是指含有金鑰組的輸出檔名。
下列範例建立名為 sgKey.snk 的金鑰組。
sn -k sgKey.snk
如果您想要延遲簽名組件,而且您控制了整個金鑰組 (這大致是發生在測試案例中的情形),您可以使用下列命令來產生金鑰組,然後從金鑰組解壓縮公開金鑰到個別的檔案中。首先,請先建立金鑰組:
sn -k keypair.snk
接下來,從金鑰組解壓縮公開金鑰,並將公開金鑰複製到個別的檔案中:
sn -p keypair.snk public.snk
當您建立金鑰組後,您必須將檔案放到可使用強式名稱簽名工具尋找到的位置。使用強式名稱簽名組件時,組件連結器 (Al.exe) 會尋找金鑰檔的相關目前目錄和輸出目錄。使用命令列編譯器時,您可以只要將金鑰複製到含有您的程式模組的目前目錄即可。
如果您是使用 IDE (例如 Visual Studio .NET) 將組件簽署為強式名稱,您必須瞭解 IDE 尋找金鑰檔的位置。例如,Visual Basic .NET 會在包含 Visual Studio 方案的目錄中尋找金鑰檔,而 C# 編譯器則會在包含二進位資料的目錄中尋找金鑰檔。請將金鑰檔放到適當的專案目錄中,並將檔案屬性設定如下:
<Assembly: AssemblyKeyFileAttribute("key.snk")>
[C#]
[assembly: AssemblyKeyFileAttribute(@"..\..\key.snk")]