¿Podría explicar qué es una Asamblea en C# o .NET?¿Qué es exactamente un ensamblaje en C# o .NET?
- ¿Dónde comienza y dónde termina?
- ¿Qué información importante debo conocer acerca de los ensamblajes?
¿Podría explicar qué es una Asamblea en C# o .NET?¿Qué es exactamente un ensamblaje en C# o .NET?
Un ensamblado es la salida compilada de su código, generalmente una DLL, pero su EXE también es un ensamblado. Es la unidad más pequeña de implementación para cualquier proyecto .NET.
El ensamblaje normalmente contiene el código .NET en MSIL (lenguaje intermedio de Microsoft) que se compilará en código nativo ("JITted" compilado por el compilador Just-In-Time) la primera vez que se ejecuta en una máquina determinada . Ese código compilado también se almacenará en el ensamblaje y se reutilizará en llamadas posteriores.
El ensamblaje también puede contener recursos como iconos, mapas de bits, tablas de cadenas, etc. Además, el ensamblaje también contiene metadatos en el manifiesto de ensamblaje: información como el número de versión, el nombre seguro, la cultura, los ensamblajes a los que se hace referencia, etc.
En el 99% de sus casos, un ensamblaje es igual a un archivo físico en disco: el caso de un ensamblaje de archivos múltiples (un ensamblaje distribuido en más de un archivo) parece ser un caso bastante extraño que nunca he encontrado hasta ahora en mis más de 5 años de desarrollo de .NET.
En un ensamblaje de múltiples elementos, solo existiría un manifiesto de ensamblaje en un archivo DLL o EXE y el código MSIL en varios archivos netmodule.
@marc_s: creo que te refieres a una archivo de ensamblaje Es posible empaquetar varios ensambles en un solo archivo a través de las herramientas de línea de comandos de Studio, pero no directamente a través del IDE. –
Una cosa muy importante en un ensamblaje son los metadatos en el manifiesto de ensamblaje. El manifiesto tiene información como la versión, el nombre seguro, la cultura, los ensamblados a los que se hace referencia, etc. En un ensamblaje de múltiples elementos, solo habría un manifiesto de ensamblaje en un dll o exe y el código MSIL en múltiples archivos .netmodule. Básicamente, un ensamblaje es la unidad mínima de implementación en> net – softveda
@marc_s: agradecería que añadiera el punto de @ Pratik a la respuesta, gracias –
En el marco Microsoft .NET, un montaje es una biblioteca de código parcialmente compilada para su uso en la implementación, de versiones y la seguridad.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
una asamblea es un archivo que se genera automáticamente por el compilador en la compilación exitosa de todas las aplicaciones .NET. Puede ser una biblioteca de enlace dinámico o un archivo ejecutable. Se genera solo una vez para una aplicación y en cada compilación posterior se actualiza el conjunto.
Los ensamblados son distintos de los archivos que los contienen. –
@Raghav - ¡Actualice su fotografía con algo casual por los cielos! No estamos posando aquí para los pasaportes, ¿sabes? –
Here's otra explicación de la composición de .NET Asambleas, un mini-Cita:
El marco .NET consiste en los conceptos de módulos, ensamblajes, que tanto repositorio de metadatos y manifiesto información . Un ensamblaje puede contener módulos múltiples. Visual C# sólo alguna vez crea un módulo que se convirtió en un conjunto por el compilador de C# (csc.exe), sino una asamblea puede vincular muchos módulos .NET sí a través de la línea de comandos enlazador (al.exe) montaje herramienta. Por ejemplo, cada uno de los archivos .cs del código de origen puede compilarse en un módulo y vincularse entre sí para formar un ensamblaje ; un ensamblaje es solo una colección de módulos y recursos. Uno de estos módulos sin embargo debe contener metadatos manifiestos (ver a continuación) información para el ensamblado que es entendido por el CLR.
....
Después de haber creado un nuevo .exe o .dll dentro de VS.NET verá que su archivo aparece dentro de su carpeta bin. Abrirlo en el Bloc de notas va a dar un galimatías, o incluso dentro de un editor hexadecimal sin conocer la estructura del archivo , se necesita una herramienta como ildasm.exe o explorador CFF para hacer el significado de ella. La estructura del conjunto es es el siguiente:cabecera PE
cabecera CLR
metadatos
CLR
código
Datos nativos CLR IL
Cuando un código fuente se compila por la compilador de lenguaje Generar un ensamblado administrado y MSIL (MisroSoft Intermediate Language). Esa Asamblea contiene .dll o .exe archivo. Un ensamblado puede ser de dos tipos Conjunto privado y Conjunto compartido, compartido El ensamblaje se almacena en GAC (caché de ensamblaje global) para que cualquier aplicación pueda consultarlo mientras el ensamblaje privado se almacena en la carpeta de aplicaciones que se puede usar por solo una aplicación.
Un ensamblado es un archivo DLL o EXE que se creará cuando lo publique o compile su aplicación.
Estrictamente hablando, ¿no es un montaje un concepto de .NET en lugar de un concepto de C#? – JeffH
@JeffH: cuando hice la pregunta, pensé que era un concepto de C#. Ahora entiendo que es .NET uno. Sin embargo, como creo que otras personas pueden estar confundidas como yo, intencionalmente no lo cambié para que Google se acomodara a este error ... –
Un 'exe' o' dll' –