Postupy: Podepsání sestavení silným názvem
Poznámka:
I když .NET Core podporuje sestavení se silným názvem a všechna sestavení v knihovně .NET Core jsou podepsaná, většina sestavení třetích stran nepotřebuje silné názvy. Další informace najdete v tématu Podepisování silného názvu na GitHubu.
Existuje několik způsobů, jak můžete podepsat sestavení pomocí silného názvu:
- Pomocí stránky sestavení>silného pojmenování v návrháři projektu pro projekt v sadě Visual Studio. Nejjednodušším a nejpohodlnějším způsobem je podepsání sestavení pomocí silného názvu.
- Pomocí linkeru sestavení (Al.exe) propojte modul kódu rozhraní .NET Framework ( soubor .netmodule ) se souborem klíče.
- Pomocí atributů sestavení pro vložení informací o silném názvu do kódu. Můžete použít buď atribut AssemblyKeyFileAttribute , nebo AssemblyKeyNameAttribute v závislosti na tom, kde se nachází soubor klíče, který se má použít.
- Pomocí možností kompilátoru.
Pro podepsání sestavení silným názvem musíte mít pár kryptografických klíčů. Další informace o vytvoření páru klíčů najdete v tématu Postupy: Vytvoření páru veřejného a privátního klíče.
Vytvoření a podepsání sestavení silným názvem pomocí sady Visual Studio
- V Průzkumník řešení otevřete místní nabídku projektu a pak zvolte Vlastnosti.
- Na kartě Sestavení najdete uzel silného pojmenování.
- Zaškrtněte políčko Podepsat sestavení, které rozbalí možnosti.
- Vyberte tlačítko Procházet a zvolte cestu k souboru klíče silného názvu.
Poznámka:
Pokud chcete zpozdit podepsání sestavení, zvolte soubor veřejného klíče.
Vytvoření a podepsání sestavení silným názvem pomocí linkeru sestavení
Otevřete Visual Studio Developer Command Prompt nebo Visual Studio Developer PowerShell a zadejte následující příkaz:
al /out:<assemblyName moduleName>>< /keyfile:<keyfileName >
Kde:
- AssemblyName je název sestavení se silným podpisem ( soubor .dll nebo .exe ), který bude generovat Linker sestavení.
- moduleName je název modulu kódu rozhraní .NET Framework ( soubor .netmodule ), který obsahuje jeden nebo více typů. Soubor .netmodule můžete vytvořit kompilováním kódu pomocí
/target:module
přepínače v jazyce C# nebo Visual Basic. - keyfileName je název kontejneru nebo souboru, který obsahuje dvojici klíčů. Linker sestavení interpretuje relativní cestu vzhledem k aktuálnímu adresáři.
Následující příklad podepíše sestavení MyAssembly.dll silným názvem pomocí souboru klíče sgKey.snk.
al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk
Další informace o tomto nástroji naleznete v tématu Assembly Linker.
Podepsání sestavení silným názvem pomocí atributů
System.Reflection.AssemblyKeyFileAttribute Přidejte do souboru zdrojového kódu nebo AssemblyKeyNameAttribute atribut a zadejte název souboru nebo kontejneru, který obsahuje pár klíčů, který se má použít při podepisování sestavení silným názvem.
Zkompilujte soubor zdrojového kódu běžným způsobem.
Poznámka:
Kompilátory jazyka C# a Visual Basic vydávají upozornění kompilátoru (CS1699 a BC41008) při výskytu AssemblyKeyFileAttribute nebo AssemblyKeyNameAttribute atributu ve zdrojovém kódu. Upozornění můžete ignorovat.
Následující příklad používá AssemblyKeyFileAttribute atribut se souborem klíče s názvem keyfile.snk, který se nachází v adresáři, kde je sestavení zkompilováno.
[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>
Při kompilaci zdrojového souboru můžete také podepsání sestavení pozdržet. Další informace naleznete v tématu Zpoždění podepsání sestavení.
Podepsání sestavení silným názvem pomocí kompilátoru
Zkompilujte soubor zdrojového kódu nebo soubory s možností kompilátoru /keyfile
/delaysign
v jazyce C# a Visual Basic nebo možnost linkeru /KEYFILE
/DELAYSIGN
v jazyce C++. Za název možnosti přidejte dvojtečku a název souboru s klíčem. Při použití kompilátorů příkazového řádku můžete jednoduše zkopírovat soubor klíče do aktuálního adresáře, který obsahuje soubory zdrojového kódu.
Informace o zpoždění podepisování naleznete v tématu Zpoždění podepsání sestavení.
Následující příklad používá kompilátor jazyka C# a podepíše sestavení UtilityLibrary.dll silným názvem pomocí souboru klíče sgKey.snk.
csc /t:library UtilityLibrary.cs /keyfile:sgKey.snk
Viz také
- Vytváření a používání sestavení se silným názvem
- Postupy: Vytvoření páru veřejného a privátního klíče
- Al.exe (linker sestavení)
- Podepsání sestavení zpožděním
- Rozhraní API silného názvu vyvolává výjimku PlatformNotSupportedException
- Správa podepsání sestavení a manifestu
- Podpisová stránka, Návrhář projektu