Cómo: Ver el contenido de un ensamblado
Actualización: noviembre 2007
El Desensamblador de MSIL (Ildasm.exe) se puede usar para ver la información del lenguaje intermedio de Microsoft (MSIL) de un archivo. Si el archivo que se examina es un ensamblado, esta información puede incluir los atributos de dicho ensamblado, así como referencias a otros módulos y ensamblados. Esta información puede resultar útil para determinar si el archivo es un ensamblado o parte de un ensamblado y si tiene referencias a otros módulos o ensamblados.
Para mostrar el contenido de un ensamblado mediante Ildasm.exe
Escriba ildasm <nombre de ensamblado> en el símbolo del sistema. Por ejemplo, con el comando siguiente se desensambla el ensamblado Hello.exe.
ildasm Hello.exe
Para ver información de manifiesto de ensamblado
- Haga doble clic en el icono del MANIFIESTO en la ventana del Desensamblador MSIL.
Ejemplo
El siguiente ejemplo empieza con un programa básico "Hola a todos". Después de compilar el programa, utilice Ildasm.exe para desensamblar el ensamblado Hello.exe y ver el manifiesto de ensamblado.
Imports System
Public Module modmain
Sub Main()
Console.WriteLine ("Hello World using Visual Basic!")
End Sub
End Module
using System;
class MainApp {
public static void Main() {
Console.WriteLine("Hello World using C#!");
}
}
#using <mscorlib.dll>
using namespace System;
void main() {
Console::WriteLine(L"Hello World using Managed Extensions!");
}
La ejecución del comando ildasm.exe en el ensamblado Hello.exe y un doble clic en el icono del MANIFIESTO en la ventana de IL DASM generan el resultado siguiente:
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 1:0:2411:0
}
.assembly Hello
{
// --- The following custom attribute is added automatically; do not uncomment. -------
// .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(bool,
// bool) = ( 01 00 00 01 00 00 )
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module Hello.exe
// MVID: {58AD9DFD-63A6-462A-8AD5-42CBC95AA147}
.subsystem 0x00000003
.file alignment 512
.corflags 0x00000001
// Image base: 0x03330000
En la siguiente tabla se describen las directivas del manifiesto del ensamblado Hello.exe utilizado en el ejemplo.
Directiva |
Descripción |
---|---|
.assembly extern <nombre del ensamblado> |
Especifica otro ensamblado que contiene elementos a los que hace referencia el módulo actual (en este ejemplo, mscorlib). |
.publickeytoken <token> |
Especifica el símbolo de la clave real del ensamblado al que se hace referencia. |
.ver <número de versión> |
Especifica el número de versión del ensamblado al que se hace referencia. |
.assembly <nombre del ensamblado> |
Especifica el nombre del ensamblado. |
.hash algorithm <valor int32> |
Especifica el algoritmo de hash utilizado. |
.ver <número de versión> |
Especifica el número de versión del ensamblado. |
.module <nombre de archivo> |
Especifica el nombre de los módulos que forman el ensamblado. En este ejemplo, el ensamblado sólo tiene un archivo. |
.subsystem <valor> |
Especifica el entorno de aplicación que requiere el programa. En este ejemplo, el valor 3 indica que este ejecutable se ejecuta desde una consola. |
.corflags |
En la actualidad, un campo reservado de los metadatos. |
Un manifiesto de ensamblado puede contener varias directivas distintas, dependiendo del contenido del ensamblado. Para obtener una lista completa de las directivas del manifiesto de ensamblado, consulte la documentación (en inglés) de ECMA, especialmente la partición II, sobre definición y semántica de metadatos, y la partición III, sobre el conjunto de instrucciones de CIL. La documentación está disponible en línea en https://msdn.microsoft.com/net/ecma/ y http://www.ecma-international.org/publications/standards/ecma-335.htm.
Vea también
Conceptos
Dominios de aplicación y ensamblados
Temas "Cómo..." sobre dominios de aplicación y ensamblados