Správa podepsání sestavení a manifestu

Podepisování silným názvem dává softwarové komponentě globálně jedinečnou identitu. Silné názvy se používají k zajištění, že sestavení nemůže být falšováno někým jiným a aby bylo zajištěno, že závislosti součástí a příkazy konfigurace se mapují na správnou součást a verzi komponenty.

Silný název se skládá z identity sestavení (jednoduchý textový název, číslo verze a informace o jazykové verzi), plus token veřejného klíče a digitální podpis.

Informace o podepisování sestavení v projektech jazyka Visual Basic a C# naleznete v tématu Vytvoření a použití sestavení se silným názvem.

Informace o podepisování sestavení v projektech C++ naleznete v tématu Sestavení se silným názvem (C++/CLI).

Poznámka:

Podepisování silného názvu nechrání před zpětnou technikou sestavení. Pokud chcete chránit proti zpětné analýze, přečtěte si téma Dotfuscator Community.

Typy prostředků a podepisování

Můžete podepsat sestavení .NET a manifesty aplikací:

  • Spustitelné soubory (.exe)

  • Manifesty aplikace (.exe.manifest)

  • Manifesty nasazení (.application)

  • Sestavení sdílených komponent (.dll)

Podepište následující typy assetu:

  1. Sestavení, pokud je chcete nasadit do globální mezipaměti sestavení (GAC).

  2. Manifesty aplikací a nasazení ClickOnce Visual Studio ve výchozím nastavení umožňuje podepisování pro tyto aplikace.

  3. Primární sestavení vzájemné spolupráce, která se používají pro interoperabilitu modelu COM. Nástroj TLBIMP vynucuje při vytváření primárního sestavení vzájemné spolupráce z knihovny typů modelu COM silné pojmenování.

Obecně byste neměli podepisovat spustitelné soubory. Komponenta se silným názvem nemůže odkazovat na komponentu s jiným názvem, která je nasazena v aplikaci. Visual Studio nepodepisuje spustitelné soubory aplikací, ale místo toho podepíše manifest aplikace, který odkazuje na slabě pojmenovaný spustitelný soubor. Vyhněte se podepisování komponent, které jsou pro vaši aplikaci soukromé, protože podepisování může ztížit správu závislostí.

Jak podepsat sestavení v sadě Visual Studio

Postup podepsání sestavení závisí na verzi Návrháře projektu, kterou projekt používá.

Pro projekty jazyka C# v .NET Core (a .NET 5 a novějších) v sadě Visual Studio 2022:

  1. Otevřete okno vlastností projektu (klikněte pravým tlačítkem na uzel projektu v Průzkumník řešení a vyberte Vlastnosti).
  2. V části Sestavení vyhledejte silné pojmenování a zaškrtněte políčko Podepsat sestavení. Když zaškrtnete políčko, zobrazí se další možnosti pro soubor klíče a pozdržet podepisování.
  3. Zadejte soubor klíče. Pokud se rozhodnete vytvořit nový soubor klíče, nové soubory klíčů se vždy vytvoří ve formátu .pfx . Pro nový soubor potřebujete jméno a heslo.

Pro projekty .NET Framework a Visual Basic v sadě Visual Studio 2022 nebo Visual Studio 2019:

  1. Otevřete kartu Podepisování okna vlastností projektu (klikněte pravým tlačítkem na uzel projektu v Průzkumník řešení a vyberte Vlastnosti). Vyberte kartu Podepisování.
  2. Zaškrtněte políčko Podepsat sestavení.
  3. Zadejte soubor klíče. Pokud se rozhodnete vytvořit nový soubor klíče, nové soubory klíčů se vždy vytvoří ve formátu .pfx . Pro nový soubor potřebujete jméno a heslo.

Upozorňující

Soubor klíče byste měli vždy chránit heslem, aby ho někdo jiný nemohl používat. Klíče můžete zabezpečit také pomocí poskytovatelů nebo úložišť certifikátů.

Můžete také odkazovat na klíč, který jste už vytvořili. Další informace o vytváření klíčů naleznete v tématu Vytvoření páru veřejného a privátního klíče.

Pokud máte přístup jenom k veřejnému klíči, můžete odložit přiřazení klíče pomocí podepisování zpoždění. Podepisování zpoždění povolíte zaškrtnutím políčka Pouze znaménko zpoždění. Projekt podepsaný zpožděním se nespustí a nemůžete ho ladit. Během vývoje ale můžete přeskočit ověření pomocí nástroje Sn.exe silného -Vr názvu s možností.

Informace o podpisových manifestech naleznete v tématu Postupy: Podepsání manifestů aplikace a nasazení.