Compartir a través de


Cómo: Ver el contenido de un ensamblado

El Ildasm.exe (Desensamblador de MSIL) 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

Class MainApp
    Public Shared Sub Main()
        Console.WriteLine("Hello World using Visual Basic!")
    End Sub
End Class
using System;

class MainApp
{
    public static void Main()
    {
        Console.WriteLine("Hello World using C#!");
    }
}
using namespace System;

class MainApp
{
public:
    static void Main()
    {
        Console::WriteLine("Hello World using C++/CLI!");
    }
};

int main()
{
    MainApp::Main();
}

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:

// Metadata version: v4.0.30319
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 4:0:0:0
}
.assembly Hello
{
  .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) 
  .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // ....T..WrapNonEx
                                                                                                             63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 )       // ceptionThrows.
  .hash algorithm 0x00008004
  .ver 0:0:0:0
}
.module Hello.exe
// MVID: {7C2770DB-1594-438D-BAE5-98764C39CCCA}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003       // WINDOWS_CUI
.corflags 0x00000001    //  ILONLY
// Image base: 0x00600000

En la siguiente tabla se describen las directivas del manifiesto del ensamblado Hello.exe utilizado en el ejemplo.

Directiva

Descripción

.assembly extern <nombre de 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 de 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; vea ECMA C# and Common Language Infrastructure Standards en MSDN y Standard ECMA-335 - Common Language Infrastructure (CLI) en el sitio web de ECMA International.

Vea también

Referencia

Ildasm.exe (Desensamblador de MSIL)

Conceptos

Dominios de aplicación y ensamblados

Temas "Cómo..." sobre dominios de aplicación y ensamblados