Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los ensamblados son las unidades fundamentales de implementación, control de versiones, reutilización, ámbito de activación y permisos de seguridad para aplicaciones basadas en .NET. Un ensamblado es una colección de tipos y recursos creados para trabajar juntos y formar una unidad lógica de funcionalidad. Los ensamblados tienen la forma de archivos ejecutables (.exe) o biblioteca de vínculos dinámicos (.dll) y son los bloques de creación de aplicaciones .NET. Proporcionan a Common Language Runtime la información necesaria para conocer las implementaciones de tipos.
En .NET y .NET Framework, puede compilar un ensamblado a partir de uno o varios archivos de código fuente. En .NET Framework, los ensamblados pueden contener uno o varios módulos. De este modo, se pueden planear proyectos más grandes para que varios desarrolladores puedan trabajar en módulos o archivos de código fuente independientes, que se combinan para crear un único ensamblado. Para obtener más información sobre los módulos, consulte Cómo: Crear un ensamblaje de varios archivos.
Los ensamblados tienen las siguientes propiedades:
Los ensamblados se implementan como archivos .exe o .dll.
En el caso de las bibliotecas que tienen como destino .NET Framework, puede compartir ensamblados entre aplicaciones si los coloca en la caché global de ensamblados (GAC). Debe asignar nombres seguros a los ensamblados antes de poder incluirlos en la GAC. Para obtener más información, vea Ensamblados con nombre seguro.
Los ensamblados solo se cargan en memoria si son necesarios. Si no se usan, no se cargan. Por lo tanto, los ensamblados pueden ser una manera eficaz de administrar recursos en proyectos más grandes.
Puede obtener información sobre un ensamblado programáticamente utilizando la reflexión. Para obtener más información, vea Reflexión (C#) o Reflexión (Visual Basic).
Puede cargar un ensamblado solo para inspeccionarlo mediante la MetadataLoadContext clase en .NET y .NET Framework. MetadataLoadContext reemplaza los Assembly.ReflectionOnlyLoad métodos.
Ensamblados en Common Language Runtime
Los ensamblajes proporcionan al *Common Language Runtime* la información que necesita para conocer las implementaciones de tipo. En tiempo de ejecución, un tipo no existe fuera del contexto de un ensamblado.
Un ensamblado define la información siguiente:
Código que ejecuta el Common Language Runtime. Cada ensamblado solo puede tener un punto de entrada:
DllMain
,WinMain
oMain
.Límite de seguridad. Un ensamblado es la unidad en la que se solicitan y conceden los permisos. Para obtener más información sobre los límites de seguridad en los ensamblados, consulte Consideraciones de seguridad de ensamblado.
El límite de tipos. La identidad de cada tipo incluye el nombre del ensamblado en el que reside. Un tipo denominado
MyType
que se carga en el ámbito de un ensamblado no es el mismo que un tipo denominadoMyType
que se carga en el ámbito de otro ensamblado.Límite del ámbito de referencia: el manifiesto del ensamblado tiene metadatos que se usan para resolver tipos y satisfacer las solicitudes de recursos. En el manifiesto se especifican los tipos y recursos que se exponen fuera del ensamblado y se enumeran otros ensamblados de los que depende. El código de lenguaje intermedio común (CIL) en un archivo ejecutable portátil (PE) no se ejecutará a menos que tenga un manifiesto de ensamblado asociado.
El límite de versión. El ensamblado es la unidad versionable más pequeña de Common Language Runtime. Todos los tipos y recursos del mismo ensamblado se versionan como una unidad. El manifiesto de ensamblado describe las dependencias de versión que especifique para los ensamblados dependientes. Para obtener más información sobre el control de versiones, vea Control de versiones de ensamblado.
La unidad de implementación: cuando se inicia una aplicación, solo los ensamblados a los que la aplicación llama inicialmente deben estar presentes. Otros ensamblados, como ensamblados que contienen recursos de localización o clases de utilidad, se pueden recuperar a petición. Este proceso permite que las aplicaciones sean sencillas y delgadas cuando se descarguen por primera vez. Para obtener más información sobre la implementación de ensamblados, consulte Implementación de aplicaciones.
Una unidad de ejecución en paralelo: para obtener más información sobre cómo ejecutar varias versiones de un ensamblado, vea Ensamblados y ejecución en paralelo.
Crear un ensamblado
Los ensamblados pueden ser estáticos o dinámicos. Los ensamblados estáticos se almacenan en un disco en archivos ejecutables portátiles (PE). Los ensamblados estáticos pueden incluir interfaces, clases y recursos como mapas de bits, archivos JPEG y otros archivos de recursos. También puede crear ensamblados dinámicos, que se ejecutan directamente desde la memoria y no se guardan en el disco antes de la ejecución. Puede guardar ensamblados dinámicos en el disco después de ejecutarlos.
Hay varias maneras de crear ensamblados. Puede usar herramientas de desarrollo, como Visual Studio que pueden crear archivos.dll o .exe . Puede usar herramientas en Windows SDK para crear ensamblados con módulos de otros entornos de desarrollo. También puede usar las API de Common Language Runtime, como System.Reflection.Emit, para crear ensamblados dinámicos.
Compile ensamblados al compilarlos en Visual Studio, compilarlos con herramientas de interfaz de línea de comandos de .NET Core o compilar ensamblados de .NET Framework con un compilador de línea de comandos. Para más información sobre cómo compilar ensamblados mediante la CLI de .NET, consulte Introducción a la CLI de .NET.
Nota:
Para compilar un ensamblado en Visual Studio, en el menú Compilar , seleccione Compilar.
Manifiesto del ensamblado
Todos los ensamblados tienen un archivo de manifiesto del ensamblado. De forma similar a una tabla de contenido, el manifiesto del ensamblado contiene lo siguiente:
Identidad del ensamblado (su nombre y versión).
Una tabla de archivos en la que se describen todos los demás archivos que componen el ensamblado, como otros ensamblados que haya creado y en los que se basa el archivo .exe o .dll, archivos de mapa de bits o Léame.
Una lista de referencias de ensamblado, que es una lista de todas las dependencias externas, como .dlls u otros archivos. Las referencias de ensamblado contienen referencias a objetos globales y privados. Los objetos globales están disponibles para todas las demás aplicaciones. En .NET Core, los objetos globales se acoplan con un entorno de ejecución de .NET Core determinado. En .NET Framework, los objetos globales residen en la caché global de ensamblados (GAC). System.IO.dll es un ejemplo de un ensamblado en la GAC. Los objetos privados deben estar en un nivel de directorio en o debajo del directorio en el que está instalada la aplicación.
Los ensamblados contienen información sobre el contenido, el control de versiones y las dependencias. Por lo tanto, las aplicaciones que las usan no necesitan depender de orígenes externos, como el registro en sistemas Windows, para funcionar correctamente. Los ensamblados reducen los conflictos de .dll y hacen que las aplicaciones sean más confiables y fáciles de implementar. En muchos casos, puede instalar una aplicación basada en .NET simplemente copiando los archivos al equipo de destino. Para obtener más información, vea Manifiesto de ensamblado.
Agregar una referencia a un ensamblado
Para usar un ensamblado en una aplicación, debe agregarle una referencia. Cuando se hace referencia a un ensamblado, todos los tipos, propiedades, métodos y otros miembros accesibles de sus espacios de nombres están disponibles para la aplicación como si su código formase parte del archivo de origen.
Nota:
La referencia a la mayoría de los ensamblados de la biblioteca de clases de .NET se hace automáticamente. Si no se hace referencia automáticamente a un ensamblado del sistema, agregue una referencia de una de las maneras siguientes:
- Para .NET y .NET Core, agregue una referencia al paquete NuGet que contiene el ensamblado. Use el Administrador de paquetes NuGet en Visual Studio o agregue un <elemento PackageReference> para el ensamblado al proyecto .csproj o .vbproj .
- Para .NET Framework, agregue una referencia al ensamblado mediante el cuadro de diálogo Agregar referencia en Visual Studio o la
-reference
opción de línea de comandos para los compiladores de C# o Visual Basic .
En C#, puede usar dos versiones del mismo ensamblado en una sola aplicación. Para obtener más información, consulte extern alias.
Contenido relacionado
Título | Descripción |
---|---|
Contenido del ensamblado | Elementos que componen un ensamblado. |
Manifiesto de ensamblado | Datos del manifiesto del ensamblado y cómo se almacenan en los ensamblados. |
Caché global de ensamblados | Cómo almacena y usa la GAC los ensamblados. |
Ensamblados con nombre seguro | Características de los ensamblados con nombre seguro. |
Consideraciones de seguridad del ensamblado | Cómo funciona la seguridad de los ensamblados. |
Control de versiones de los ensamblados | Información general de la directiva de control de versiones de .NET Framework. |
Ubicación del ensamblado | Dónde ubicar los ensamblados. |
Ensamblados y ejecución en paralelo | Use varias versiones del entorno de ejecución o un ensamblado simultáneamente. |
Emitir métodos y ensamblados dinámicos | Cómo crear ensamblados dinámicos. |
Cómo el entorno de ejecución localiza ensamblados | Cómo resuelve .NET Framework las referencias de ensamblado en tiempo de ejecución. |
Referencia
Consulte también
- Formato de archivo de ensamblado de .NET
- Ensamblados de confianza
- Ensamblados de referencia
- Procedimiento: Carga y descarga de ensamblados
- Procedimiento: Uso y depuración de la capacidad de descarga de ensamblados en .NET Core
- Cómo: Determinar si un archivo es un ensamblado
- Cómo: Inspeccionar el contenido del ensamblado mediante MetadataLoadContext