Delen via


Sterk benoemde assembly's

Door een assembly een sterke naam te geven, wordt een unieke identiteit voor de assembly gemaakt en kunnen assemblyconflicten worden voorkomen.

Wat maakt een sterk benoemde assembly?

Een sterke benoemde assembly wordt gegenereerd met behulp van de persoonlijke sleutel die overeenkomt met de openbare sleutel die is gedistribueerd met de assembly en de assembly zelf. De assembly bevat het assemblymanifest, dat de namen en hashes bevat van alle bestanden waaruit de assembly bestaat. Assembly's met dezelfde sterke naam moeten identiek zijn.

U kunt assembly's met een sterke naam gebruiken met Behulp van Visual Studio of een opdrachtregelprogramma. Zie Procedure voor meer informatie: Een assembly ondertekenen met een sterke naam of Sn.exe (hulpprogramma Sterke naam).

Wanneer een sterk benoemde assembly wordt gemaakt, bevat deze de eenvoudige tekstnaam van de assembly, het versienummer, optionele cultuurinformatie, een digitale handtekening en de openbare sleutel die overeenkomt met de persoonlijke sleutel die wordt gebruikt voor ondertekening.

Waarschuwing

Vertrouw niet op sterke namen voor beveiliging. Ze bieden alleen een unieke identiteit.

Waarom uw assembly's een sterke naam geven?

Voor .NET Framework zijn sterk benoemde assembly's handig in de volgende scenario's:

  • U wilt inschakelen dat naar uw assembly's wordt verwezen door sterk benoemde assembly's of dat u toegang wilt verlenen friend tot uw assembly's van andere sterk benoemde assembly's.

  • Een app heeft toegang nodig tot verschillende versies van dezelfde assembly. Dit betekent dat u verschillende versies van een assembly nodig hebt om naast elkaar te laden in hetzelfde app-domein zonder conflict. Als er bijvoorbeeld verschillende extensies van een API bestaan in assembly's met dezelfde eenvoudige naam, biedt sterke naamgeving een unieke identiteit voor elke versie van de assembly.

  • U wilt de prestaties van apps die gebruikmaken van uw assembly niet negatief beïnvloeden, dus u wilt dat de assembly domeinneutraal is. Hiervoor is een sterke naamgeving vereist, omdat een domeinneutrale assembly moet worden geïnstalleerd in de globale assemblycache.

  • U wilt het onderhoud voor uw app centraliseren door uitgeversbeleid toe te passen, wat betekent dat de assembly moet worden geïnstalleerd in de globale assemblycache.

Voor .NET Core en .NET 5+bieden sterk benoemde assembly's geen materiële voordelen. De runtime valideert nooit de handtekening met sterke namen en gebruikt ook niet de sterke naam voor assemblybinding.

Als u een opensource-ontwikkelaar bent en u de identiteitsvoordelen van een sterk benoemde assembly wilt gebruiken voor betere compatibiliteit met .NET Framework, kunt u overwegen om de persoonlijke sleutel te controleren die is gekoppeld aan een assembly in uw broncodebeheersysteem.

Zie ook