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 silnej nazwie jest silny?

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

Zestawom można nadać silną nazwę przy użyciu programu Visual Studio lub narzędzi wiersza poleceń. Aby uzyskać więcej informacji, zobacz How to: Sign an assembly with a strong name orSn.exe (Strong Name tool) (Instrukcje: podpisywanie zestawu za pomocą silnej nazwy 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 jako środku bezpieczeństwa. 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 umożliwić swoim zestawom bycie odwoływanymi przez zestawy o silnych nazwach lub chcesz zezwolić innym zestawom o silnych nazwach na dostęp do swoich zestawów.

  • Aplikacja musi mieć dostęp do różnych wersji tego samego zestawu. Oznacza to, że potrzebne są różne wersje asemblera do załadowania równocześnie w tej samej domenie aplikacyjnej 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ę swojej aplikacji, stosując politykę 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 także