Sdílet prostřednictvím


Postupy: Vytvoření páru veřejného a privátního klíče

Pokud chcete podepsat sestavení silným názvem, musíte mít dvojici veřejného a privátního klíče. Tento pár veřejného a privátního kryptografického klíče se používá během kompilace k vytvoření sestavení se silným názvem. Pár klíčů můžete vytvořit pomocí nástroje Strong Name (Sn.exe). Soubory páru klíčů mají obvykle příponu .snk .

Poznámka:

V sadě Visual Studio obsahují stránky vlastností projektu jazyka C# a Visual Basic kartu Podepisování , která umožňuje vybrat existující soubory klíčů nebo vygenerovat nové soubory klíčů bez použití Sn.exe. V jazyce Visual C++ můžete zadat umístění existujícího souboru klíče na stránce vlastností Upřesnit v části Linker v části Vlastnosti konfigurace okna Stránky vlastností. Použití atributu AssemblyKeyFileAttribute k identifikaci párů souborů klíčů bylo zastaralé od sady Visual Studio 2005.

Vytvoření páru klíčů

Pokud chcete vytvořit pár klíčů, na příkazovém řádku zadejte následující příkaz:

sn –k<název souboru>

V tomto příkazu je název výstupního souboru obsahujícího dvojici klíčů.

Následující příklad vytvoří dvojici klíčů s názvem sgKey.snk.

sn -k sgKey.snk

Pokud máte v úmyslu podepsat sestavení a řídíte celý pár klíčů (což je nepravděpodobné mimo testovací scénáře), můžete pomocí následujících příkazů vygenerovat pár klíčů a pak z něj extrahovat veřejný klíč do samostatného souboru. Nejprve vytvořte pár klíčů:

sn -k keypair.snk

Dále extrahujte veřejný klíč z páru klíčů a zkopírujte ho do samostatného souboru:

sn -p keypair.snk public.snk

Jakmile vytvoříte pár klíčů, musíte soubor umístit tam, kde ho mohou najít nástroje pro podepisování silných názvů.

Při podepisování sestavení se silným názvem vyhledá Linker sestavení (Al.exe) soubor klíče vzhledem k aktuálnímu adresáři a výstupnímu adresáři. Při použití kompilátorů příkazového řádku můžete jednoduše zkopírovat klíč do aktuálního adresáře obsahujícího moduly kódu.

Pokud používáte starší verzi sady Visual Studio, která nemá ve vlastnostech projektu kartu Podepisování , je doporučeným umístěním souboru klíče adresář projektu s atributem souboru zadaným následujícím způsobem:

[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>

Viz také