Udostępnij za pośrednictwem


Zestawy o silnych nazwach

Silne nazewnictwo zestawu tworzy unikatową tożsamość zestawu i może zapobiegać konfliktom zestawów.

Co sprawia, że zestaw o silnych nazwach?

Silny nazwany zestaw jest generowany przy użyciu klucza prywatnego, który odpowiada kluczowi publicznemu dystrybuowanemu z zestawem i samym zestawem. Zestaw zawiera manifest zestawu, który zawiera nazwy i skróty wszystkich plików tworzących zestaw. Zestawy, które mają taką samą silną nazwę, powinny być identyczne.

Zestawy o silnej nazwie można nazwać przy użyciu programu Visual Studio lub narzędzia wiersza polecenia. Aby uzyskać więcej informacji, zobacz How to: Sign an assembly with a strong name or Sn.exe (Strong Name tool) (Jak podpisać zestaw o silnej nazwie) lub Sn.exe (narzędzie silnej nazwy).

Po utworzeniu zestawu o silnej nazwie zawiera on prostą nazwę tekstową zestawu, numer wersji, opcjonalne informacje o kulturze, podpis cyfrowy i klucz publiczny odpowiadający kluczowi prywatnemu używanemu do podpisywania.

Ostrzeżenie

Nie należy polegać na silnych nazwach zabezpieczeń. Zapewniają one tylko unikatową tożsamość.

Dlaczego zestawy mają silną nazwę?

W przypadku programu .NET Framework zestawy o silnych nazwach są przydatne w następujących scenariuszach:

  • Chcesz zezwolić zestawom na odwoływanie się do zestawów o silnych nazwach lub chcesz udzielić friend dostępu do zestawów z innych zestawów o silnych nazwach.

  • Aplikacja musi mieć dostęp do różnych wersji tego samego zestawu. Oznacza to, że potrzebne są różne wersje zestawu do ładowania równoległego w tej samej domenie aplikacji bez konfliktu. Jeśli na przykład w zestawach istnieją różne rozszerzenia interfejsu API, które mają taką samą prostą nazwę, silne nazewnictwo zapewnia unikatową tożsamość dla każdej wersji zestawu.

  • Nie chcesz negatywnie wpływać na wydajność aplikacji korzystających z zestawu, więc zestaw ma być neutralny dla domeny. Wymaga to silnego nazewnictwa, ponieważ zestaw neutralny pod względem domeny musi być zainstalowany w globalnej pamięci podręcznej zestawów.

  • Chcesz scentralizować obsługę aplikacji, stosując zasady wydawcy, co oznacza, że zestaw musi być zainstalowany w globalnej pamięci podręcznej zestawów.

W przypadku platform .NET Core i .NET 5+zestawy o silnych nazwach nie zapewniają korzyści materialnych. Środowisko uruchomieniowe nigdy nie weryfikuje podpisu silnej nazwy ani nie używa silnej nazwy dla powiązania zestawu.

Jeśli jesteś deweloperem typu open source i chcesz korzystać z zalet tożsamości zestawu o silnej nazwie w celu zapewnienia lepszej zgodności z programem .NET Framework, rozważ zaewidencjonowanie klucza prywatnego skojarzonego z zestawem w systemie kontroli źródła.

Zobacz też