Partager via


Assemblys avec nom fort

Un nom fort pour un assemblage crée une identité unique pour l'assemblage et peut empêcher les conflits d'assemblage.

Qu'est-ce qu'un assembly avec nom fort ?

Un assembly avec nom fort est généré à l'aide de la clé privée qui correspond à la clé publique distribuée avec l'assembly et de l'assembly lui-même. L'assemblage inclut le manifeste d'assemblage, et contient les noms et les hachages de tous les fichiers qui composent l'assemblage. Les assemblies qui ont le même nom fort doivent être identiques.

Vous pouvez apposer un nom fort aux assemblies en utilisant Visual Studio ou un outil en ligne de commande. Pour plus d’informations, consultez Procédures : Signer un assembly avec un nom fort ou Sn.exe (outil Strong Name Tool).

Quand vous créez un assembly avec nom fort, il contient son nom de texte simple, son numéro de version, d'éventuelles informations sur sa culture, une signature numérique et la clé publique qui correspond à la clé privée utilisée pour la signature.

Avertissement

Ne vous fiez pas à des noms forts pour la sécurité. Ils fournissent une identité unique uniquement.

Pourquoi attribuer un nom fort à vos assemblys ?

Pour .NET Framework, les assemblys avec nom fort sont utiles dans les scénarios suivants :

  • Vous souhaitez permettre à vos assemblies d’être référencées par des assemblies fortement nommées, ou vous souhaitez accorder friend l’accès à vos assemblies à partir d’autres assemblies fortement nommées.

  • Une application doit accéder à différentes versions du même assembly. Cela signifie que vous avez besoin de différentes versions d’un assembly pour charger côte à côte dans le même domaine d’application sans conflit. Par exemple, si différentes extensions d’une API existent dans les assemblys qui ont le même nom simple, le nom fort fournit une identité unique pour chaque version de l’assembly.

  • Vous ne souhaitez pas affecter négativement les performances des applications à l’aide de votre assembly. Vous souhaitez donc que l’assembly soit neutre sur le domaine. Comme un assembly indépendant du domaine doit être installé dans le Global Assembly Cache, cela nécessite d'attribuer des noms forts.

  • Vous souhaitez centraliser la maintenance de votre application en appliquant une stratégie d’éditeur, ce qui signifie que l’assembly doit être installé dans le Global Assembly Cache.

Pour .NET Core et .NET 5+, les assemblages avec nom fort ne fournissent pas d’avantages significatifs. Le runtime ne valide jamais la signature de nom fort, et il n’utilise pas le nom fort pour la liaison de l’assembly.

Si vous êtes développeur open source et que vous souhaitez bénéficier des avantages de l'identification d'un assembly à nom fort pour une meilleure compatibilité avec .NET Framework, envisagez d'ajouter la clé privée associée à un assembly dans votre système de contrôle de code source.

Voir aussi