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.