Ensamblados en Common Language RuntimeAssemblies in the Common Language Runtime

Los ensamblados son los bloques de creación de las aplicaciones .NET Framework; constituyen la unidad fundamental de implementación, control de versiones, reutilización, ámbitos de activación y permisos de seguridad.Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. Un ensamblado es una colección de tipos y recursos compilados para funcionar en conjunto y formar una unidad lógica de funcionalidad.An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. Los ensamblados proporcionan a Common Language Runtime la información necesaria para conocer las implementaciones de tipos.An assembly provides the common language runtime with the information it needs to be aware of type implementations. Para la ejecución, un tipo no existe fuera del contexto de un ensamblado.To the runtime, a type does not exist outside the context of an assembly.

Un ensamblado realiza las funciones siguientes:An assembly performs the following functions:

  • Contiene el código que ejecuta Common Language Runtime.It contains code that the common language runtime executes. El código del lenguaje intermedio de Microsoft (MSIL) de un archivo ejecutable portable (PE) no se ejecuta si no tiene asociado un manifiesto del ensamblado.Microsoft intermediate language (MSIL) code in a portable executable (PE) file will not be executed if it does not have an associated assembly manifest. Hay que tener en cuenta que cada ensamblado solo puede tener un punto de entrada (es decir, DllMain, WinMain o Main).Note that each assembly can have only one entry point (that is, DllMain, WinMain, or Main).

  • Crea un límite de seguridad.It forms a security boundary. Un ensamblado es la unidad en la que se solicitan y conceden los permisos.An assembly is the unit at which permissions are requested and granted. Para más información sobre los límites de seguridad en lo que respecta a los ensamblados, vea Consideraciones de seguridad sobre ensamblados.For more information about security boundaries as they apply to assemblies, see Assembly Security Considerations.

  • Crea un límite de tipos.It forms a type boundary. La identidad de cada tipo incluye el nombre del ensamblado en que reside.Every type's identity includes the name of the assembly in which it resides. Por ello, un tipo MyType cargado en el ámbito de un ensamblado no es igual que un tipo denominado MyType cargado en el ámbito de otro ensamblado.A type called MyType that is loaded in the scope of one assembly is not the same as a type called MyType that is loaded in the scope of another assembly.

  • Crea un límite de ámbito de referencia.It forms a reference scope boundary. El manifiesto del ensamblado contiene los metadatos del ensamblado que se utilizan para resolver tipos y satisfacer las solicitudes de recursos.The assembly's manifest contains assembly metadata that is used for resolving types and satisfying resource requests. Especifica los tipos y recursos que se exponen fuera del ensamblado.It specifies the types and resources that are exposed outside the assembly. El manifiesto también enumera otros ensamblados de los que depende.The manifest also enumerates other assemblies on which it depends.

  • Forma un límite de versión.It forms a version boundary. El ensamblado es la unidad versionable más pequeña de Common Language Runtime; todos los tipos y recursos del mismo ensamblado pertenecen a la misma versión.The assembly is the smallest versionable unit in the common language runtime; all types and resources in the same assembly are versioned as a unit. El manifiesto del ensamblado describe las dependencias de versión que se especifiquen para los ensamblados dependientes.The assembly's manifest describes the version dependencies you specify for any dependent assemblies. Para más información sobre las versiones, vea Versiones de los ensamblados.For more information about versioning, see Assembly Versioning.

  • Crea una unidad de implementación.It forms a deployment unit. Cuando se inicia una aplicación, sólo deben estar presentes los ensamblados a los que llama la aplicación inicialmente.When an application starts, only the assemblies that the application initially calls must be present. Los demás ensamblados, como los recursos de localización o los ensamblados que contengan clases de utilidad, se pueden recuperar a petición.Other assemblies, such as localization resources or assemblies containing utility classes, can be retrieved on demand. De este modo, se puede mantener la simplicidad y transparencia de las aplicaciones la primera vez que se descargan.This allows applications to be kept simple and thin when first downloaded. Para más información sobre cómo implementar ensamblados, vea Implementar .NET Framework y aplicaciones.For more information about deploying assemblies, see Deploying Applications.

  • Es la unidad que permite la ejecución en paralelo.It is the unit at which side-by-side execution is supported. Para más información sobre cómo ejecutar varias versiones de un ensamblado, vea Ensamblados y ejecución simultánea.For more information about running multiple versions of an assembly, see Assemblies and Side-by-Side Execution.

Los ensamblados pueden ser estáticos o dinámicos.Assemblies can be static or dynamic. Los ensamblados estáticos pueden incluir tipos de .NET Framework (interfaces y clases), así como recursos para el ensamblado (mapas de bits, archivos JPEG, archivos de recursos, etc.).Static assemblies can include .NET Framework types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). Los ensamblados estáticos se almacenan en el disco, en archivos ejecutables portables PE.Static assemblies are stored on disk in portable executable (PE) files. También se puede utilizar .NET Framework para crear ensamblados dinámicos, que se ejecutan directamente desde la memoria y no se guardan en el disco antes de su ejecución.You can also use the .NET Framework to create dynamic assemblies, which are run directly from memory and are not saved to disk before execution. Los ensamblados dinámicos se pueden guardar en el disco una vez que se hayan ejecutado.You can save dynamic assemblies to disk after they have executed.

Existen varias formas de crear ensamblados.There are several ways to create assemblies. Puede usar herramientas de desarrollo, como Visual Studio, que haya empleado anteriormente para crear archivos .dll o .exe.You can use development tools, such as Visual Studio, that you have used in the past to create .dll or .exe files. Puede utilizar las herramientas suministradas en el kit de desarrollo de software (SDK) de Windows para generar ensamblados con módulos creados en otros entornos de programación.You can use tools provided in the Windows Software Development Kit (SDK) to create assemblies with modules created in other development environments. También puede utilizar las API de Common Language Runtime, como System.Reflection.Emit, para crear ensamblados dinámicos.You can also use common language runtime APIs, such as System.Reflection.Emit, to create dynamic assemblies.

TitleTitle DESCRIPCIÓNDescription
Contenido de los ensambladosAssembly Contents Describe los elementos que componen el ensamblado.Describes the elements that make up an assembly.
Manifiesto del ensambladoAssembly Manifest Describe los datos incluidos en el manifiesto del ensamblado y cómo se almacenan en los ensamblados.Describes the data in the assembly manifest, and how it is stored in assemblies.
Caché global de ensambladosGlobal Assembly Cache Describe la memoria caché global de ensamblados y cómo se utiliza con los ensamblados.Describes the global assembly cache and how it is used with assemblies.
Ensamblados con nombre seguroStrong-Named Assemblies Describe las características de los ensamblados con nombre seguro.Describes the characteristics of strong-named assemblies.
Consideraciones de seguridad sobre ensambladosAssembly Security Considerations Explica cómo funciona la seguridad de los ensamblados.Discusses how security works with assemblies.
Versiones de los ensambladosAssembly Versioning Ofrece información general sobre la directiva de versiones de .NET Framework.Provides an overview of the .NET Framework versioning policy.
Colocación de ensambladosAssembly Placement Explica dónde ubicar los ensamblados.Discusses where to locate assemblies.
Ensamblados y ejecución simultáneaAssemblies and Side-by-Side Execution Proporciona información general sobre la utilización de varias versiones del motor en tiempo de ejecución o de un ensamblado simultáneamente.Provides an overview of using multiple versions of the runtime or of an assembly simultaneously.
Programar con ensambladosProgramming with Assemblies Describe cómo crear, firmar y establecer atributos en los ensamblados.Describes how to create, sign, and set attributes on assemblies.
Emitir métodos y ensamblados dinámicosEmitting Dynamic Methods and Assemblies Describe la creación de ensamblados dinámicos.Describes how to create dynamic assemblies.
Cómo el motor en tiempo de ejecución ubica ensambladosHow the Runtime Locates Assemblies Describe cómo resuelve .NET Framework las referencias de ensamblado en tiempo de ejecución.Describes how the .NET Framework resolves assembly references at run time.

ReferenciaReference

System.Reflection.Assembly