Assemblys avec nom fort

Un nom fort est constitué de l'identité de l'assembly (son simple nom textuel, son numéro de version et des informations de culture, le cas échéant) ainsi que d'une clé publique et d'une signature numérique. Il est généré à partir d'un fichier d'assembly (le fichier qui contient le manifeste d'assembly, qui à son tour comporte les noms et les hachages de tous les fichiers qui composent l'assembly), à l'aide de la clé privée correspondante. Microsoft® Visual Studio® .NET et d'autres outils de développement fournis avec le Kit de développement logiciel (SDK) Windows peuvent assigner des noms forts à un assembly. Les assemblys qui portent le même nom fort sont censés être identiques.

Vous pouvez faire en sorte qu'un nom soit globalement unique en signant un assembly avec un nom fort. Les noms forts répondent particulièrement aux exigences suivantes :

  • Les noms forts garantissent l'unicité du nom en s'appuyant sur des paires de clés uniques. Nul ne peut générer le même nom d'assembly que le vôtre, car un assembly généré avec une clé privée possède un nom différent de celui d'un assembly généré avec une autre clé privée.

  • Les noms forts protègent l'enregistrement en ligne de la version d'un assembly. Un nom fort peut garantir que nul ne peut produire une version ultérieure de votre assembly. Les utilisateurs peuvent être assurés qu'une version de l'assembly qu'ils chargent provient du même éditeur qui a créé la version avec laquelle l'application a été générée.

  • Les noms forts assurent un solide contrôle d'intégrité. La réussite des contrôles de sécurité .NET Framework garantit que le contenu de l'assembly n'a pas été modifié depuis sa génération. Notez toutefois que les noms forts en eux-mêmes n'impliquent pas un niveau de confiance tel que celui qui est fourni par une signature numérique et un certificat de prise en charge.

Lorsque vous référencez un assembly avec nom fort, vous vous attendez à bénéficier de certains avantages, tels que la protection du versioning et de l'affectation de nom. Si l'assembly avec nom fort référence ensuite un assembly avec un nom simple qui ne présente pas ces avantages, vous perdez alors les avantages que vous tireriez d'un assembly avec nom fort et vous êtes de nouveau confronté aux conflits de DLL. Les assemblys avec nom fort ne peuvent par conséquent référencer que d'autres assemblys avec nom fort.

Voir aussi

Tâches

Comment : signer un assembly avec un nom fort

Concepts

Global Assembly Cache