.NET Framework ¿Qué es una asamblea?


Ejemplo

Los ensamblajes son el bloque de construcción de cualquier aplicación de Common Language Runtime (CLR) . Cada tipo que defina, junto con sus métodos, propiedades y su código de bytes, se compila y empaqueta dentro de un ensamblaje.

using System.Reflection;

Assembly assembly = this.GetType().Assembly;   

Los ensamblajes se autodocumentan: no solo contienen tipos, métodos y su código IL, sino también los metadatos necesarios para inspeccionarlos y consumirlos, tanto en la compilación como en el tiempo de ejecución:

Assembly assembly = Assembly.GetExecutingAssembly();

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

Las asambleas tienen nombres que describen su identidad única y completa:

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

Si este nombre incluye un PublicKeyToken , se llama un nombre PublicKeyToken . Nombrar un ensamblaje en firme es el proceso de crear una firma mediante el uso de la clave privada que corresponde a la clave pública distribuida con el ensamblaje. Esta firma se agrega al manifiesto de ensamblaje, que contiene los nombres y los hashes de todos los archivos que forman el ensamblaje, y su PublicKeyToken convierte en parte del nombre. Las asambleas que tienen el mismo nombre seguro deben ser idénticas; Los nombres fuertes se utilizan en las versiones y para evitar conflictos de montaje.