Udostępnij za pośrednictwem


Zarządzanie podpisywaniem zestawu i manifestu

Podpisywanie silnej nazwy zapewnia składnikowi oprogramowania globalnie unikatową tożsamość. Silne nazwy są używane do zagwarantowania, że zestaw nie może być fałszowany przez kogoś innego i aby upewnić się, że zależności składników i instrukcje konfiguracji są mapowane na poprawny składnik i wersję składnika.

Silna nazwa składa się z tożsamości zestawu (prostego tekstu, numeru wersji i informacji o kulturze) oraz tokenu klucza publicznego i podpisu cyfrowego.

Aby uzyskać informacje na temat podpisywania zestawów w projektach Visual Basic i C#, zobacz Tworzenie i używanie zestawów o silnych nazwach.

Aby uzyskać informacje na temat podpisywania zestawów w projektach języka C++, zobacz Zestawy o silnych nazwach (C++/CLI).

Uwaga

Podpisywanie silnej nazwy nie chroni przed odwrotną inżynierią zestawu. Aby chronić przed inżynierią odwrotną, zobacz Dotfuscator Community.

Typy zasobów i podpisywanie

Możesz podpisać zestawy platformy .NET i manifesty aplikacji:

  • Pliki wykonywalne (.exe)

  • Manifesty aplikacji (.exe.manifest)

  • Manifesty wdrażania (.application)

  • Współużytkowane zestawy składników (.dll)

Podpisz następujące typy elementów zawartości:

  1. Zestawy, jeśli chcesz wdrożyć je w globalnej pamięci podręcznej zestawów (GAC).

  2. Manifesty aplikacji ClickOnce i wdrożenia. Program Visual Studio domyślnie włącza podpisywanie dla tych aplikacji.

  3. Podstawowe zestawy międzyoperacyjności, które są używane do współdziałania modelu COM. Narzędzie TLBIMP wymusza silne nazewnictwo podczas tworzenia podstawowego zestawu międzyoperacyjnego z biblioteki typów COM.

Ogólnie rzecz biorąc, nie należy podpisywać plików wykonywalnych. Silnie nazwany składnik nie może odwoływać się do składnika nienależącego do nazwy wdrożonego w aplikacji. Program Visual Studio nie podpisuje plików wykonywalnych aplikacji, ale zamiast tego podpisuje manifest aplikacji, który wskazuje słaby plik wykonywalny o nazwie. Unikaj podpisywania składników prywatnych w aplikacji, ponieważ podpisywanie może utrudnić zarządzanie zależnościami.

Jak podpisać zestaw w programie Visual Studio

Procedura podpisywania zestawu zależy od używanej wersji projektanta projektu.

W przypadku projektów języka C# .NET Core (i .NET 5 i nowszych) w programie Visual Studio 2022:

  1. Otwórz okno właściwości projektu (kliknij prawym przyciskiem myszy węzeł projektu w Eksplorator rozwiązań i wybierz polecenie Właściwości).
  2. W obszarze Kompilacja wyszukaj pozycję Silne nazewnictwo i zaznacz pole wyboru Podpisz zestaw. Podczas zaznaczenia pola wyboru są wyświetlane dodatkowe opcje pliku klucza i opóźnione podpisywanie.
  3. Określ plik klucza.

Jeśli nie masz pliku klucza, możesz użyć wiersza polecenia, aby utworzyć .snk plik. Możesz również użyć lub wygenerować certyfikat w .pfx pliku przy użyciu procesu publikowania , a w kroku Manifesty podpisywania można utworzyć certyfikat testowy do użycia tylko podczas programowania i testowania lub w środowisku produkcyjnym, użyć certyfikatu wystawionego przez dział IT lub autoryzowanego źródła. Zobacz Deploy a .NET Windows Desktop app with ClickOnce (Wdrażanie aplikacji klasycznej systemu Windows platformy .NET za pomocą technologii ClickOnce).

W przypadku projektów .NET Framework i Visual Basic w programie Visual Studio 2022 lub Visual Studio 2019:

  1. Otwórz kartę Podpisywanie okna właściwości projektu (kliknij prawym przyciskiem myszy węzeł projektu w Eksplorator rozwiązań i wybierz polecenie Właściwości). Wybierz kartę Podpisywanie .
  2. Zaznacz pole wyboru Podpisz zestaw.
  3. Określ plik klucza. Jeśli zdecydujesz się utworzyć nowy plik klucza, nowe pliki kluczy są zawsze tworzone w formacie pfx . Potrzebujesz nazwy i hasła dla nowego pliku.

Ostrzeżenie

Zawsze należy chronić plik klucza hasłem, aby uniemożliwić innym osobom korzystanie z niego. Klucze można również zabezpieczyć przy użyciu dostawców lub magazynów certyfikatów.

Możesz również wskazać utworzony klucz. Aby uzyskać więcej informacji na temat tworzenia kluczy, zobacz Create a public-private key pair (Tworzenie pary kluczy publicznych-prywatnych).

Jeśli masz dostęp tylko do klucza publicznego, możesz odroczyć przypisywanie klucza przy użyciu podpisywania opóźnienia. Aby włączyć podpisywanie opóźnień, zaznacz pole wyboru Tylko znak opóźnienia. Projekt podpisany z opóźnieniem nie jest uruchamiany i nie można go debugować. Można jednak pominąć weryfikację podczas programowania przy użyciu narzędzia Sn.exe silnej nazwy z opcją -Vr .

Aby uzyskać informacje o manifestach podpisywania, zobacz Instrukcje: podpisywanie manifestów aplikacji i wdrażania.