Qué es exactamente un ensamblado en C# or.NET?


¿Podría explicar qué es un ensamblado en C# o. NET?

  1. ¿Dónde comienza y dónde termina?
  2. ¿Qué información importante debo saber sobre las Asambleas?
Author: starblue, 2009-09-01

7 answers

Un ensamblado es la salida compilada de su código, normalmente un DLL, pero su EXE también es un ensamblado. Es la unidad de implementación más pequeña para cualquier proyecto.NET.

El ensamblado normalmente contiene 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 dada. Ese código compilado también se almacenará en el ensamblado y se reutilizará en llamada.

El ensamblado también puede contener recursos como iconos, mapas de bits, tablas de cadenas, etc. Además, el ensamblado también contiene metadatos en el manifiesto del ensamblado: información como el número de versión, el nombre fuerte, la cultura, los ensamblados referenciados, etc.

En el 99% de sus casos, un ensamblado equivale a un archivo físico en disco - el caso de un ensamblado multi-archivo (un ensamblado, distribuido a través de más de un solo archivo) parece ser un caso de borde de bola bastante extraño que he nunca me he encontrado hasta ahora en mis más de 5 años de desarrollo de. NET.

En un ensamblado multifile todavía habría solo un manifiesto de ensamblado en un DLL o EXE y el código MSIL en múltiples archivos netmodule.

 72
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-15 19:34:18

. NET assembly

En Microsoft. NET framework, un assembly es un código parcialmente compilado biblioteca para uso en implementación, control de versiones y seguridad.

 8
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-01 12:35:52

Http://www.codeguru.com/columns/csharp_learning/article.php/c5845

Un ensamblado es un archivo que es generado automáticamente por el compilador tras la compilación exitosa de cada aplicación.NET. Puede ser una Biblioteca de Enlaces Dinámicos o un archivo ejecutable. Se genera solo una vez para una aplicación y en cada compilación posterior el ensamblado se actualiza.

 4
Author: Raghav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-01 13:08:27

Aquí está otra explicación de la composición de los Ensamblados. NET, una mini-cita:

El. NET framework consiste en conceptos de módulos, ensamblajes, que tanto los metadatos de almacenamiento como el manifiesto información. Un ensamblaje puede contener múltiples módulos. Visual C # solo alguna vez crea un módulo que se activa en un ensamblado por el compilador de C # (csc.exe), pero un ensamblado puede enlazar muchos módulos. NET juntos a través de la assembly linker (al.exe) línea de comandos herramienta. Por ejemplo, cada una de sus fuentes codificar .los archivos cs se pueden compilar en un módulo y enlazado entre sí para formar una asamblea-una asamblea es solo un colección de módulos y recursos. Sin embargo, uno de estos módulos debe contener metadatos de manifiesto (ver a continuación) información para la asamblea entendido por el CLR.
....
Habiendo creado una nueva .exe or .DLL dentro VS.NET ves aparecer tu archivo dentro de tu carpeta bin. Abriéndolo en bloc de notas dará galimatías, o incluso dentro de un editor hexadecimal sin conocer la estructura de la file, necesitas una herramienta como ildasm.exe o CFF explorer para hacer sentido de se. La estructura de la asamblea es el siguiente:

Cabecera PE
CLR header
Metadatos CLR
CLR
Código IL
Datos nativos

 2
Author: Chris S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-25 10:40:58

Un ensamblado es un DLL o un EXE que se creará cuando lo publique o compile su aplicación.

 0
Author: Anup Shetty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-08 06:28:43

Cuando un código fuente es compilado por el compilador de lenguaje, genera un Ensamblado Administrado y MSIL(Lenguaje Intermedio MisroSoft). Ese Conjunto contiene .dll o .archivo exe . Un Assebmly puede ser de dos tipos Private Assembly y Shared Assembly , shared Assembly se almacena en GAC (Global Assembly Cache) para que cualquier aplicación pueda hacer referencia a él mientras que private assembly se almacena en la carpeta de la aplicación que solo puede Aplicación.

 -1
Author: gaurav patni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-08 05:12:46

Después de escribir el código fuente de su programa(proyecto), se crea un archivo que puede ser DLL o EXE depende de su proyecto. Hace solo una vez para un solo proyecto. Tiene dos tipos 1: - individual 2: - programa compartido o multiprograma el ensamblado único utilizado solo en un solo programa mientras está compartido se puede usar para multiprograma

 -1
Author: kirti kant pareek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-28 07:13:58