.NET Framework Qu'est-ce qu'une assemblée?


Exemple

Les assemblages constituent le composant de base de toute application Common Language Runtime (CLR) . Chaque type que vous définissez, ainsi que ses méthodes, ses propriétés et son bytecode, sont compilés et empaquetés dans un assemblage.

using System.Reflection;

Assembly assembly = this.GetType().Assembly;   

Les assemblages sont auto-documentés: ils contiennent non seulement les types, les méthodes et leur code IL, mais également les métadonnées nécessaires pour les inspecter et les consommer, à la compilation et à l'exécution:

Assembly assembly = Assembly.GetExecutingAssembly();

foreach (var type in assembly.GetTypes())
{
    Console.WriteLine(type.FullName);
}

Les assemblées ont des noms qui décrivent leur identité complète et unique:

Console.WriteLine(typeof(int).Assembly.FullName);
// Will print: "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

Si ce nom inclut un PublicKeyToken , il s'appelle un nom fort . Le nom fort d'un assembly est le processus de création d'une signature à l'aide de la clé privée qui correspond à la clé publique distribuée avec l'assembly. Cette signature est ajoutée au manifeste d'assembly, qui contient les noms et les hachages de tous les fichiers qui constituent l'assembly, et son PublicKeyToken devient partie intégrante du nom. Les assemblages ayant le même nom fort doivent être identiques; Les noms forts sont utilisés dans la gestion des versions et pour éviter les conflits d'assemblage.