Como: Exibir Sumário do assembly

Você pode usar o Desassemblador do MSIL (ILDASM.exe) para exibir informações Microsoft Intermediate Language (MSIL) em um arquivo.Se o arquivo que está sendo examinado for um assembly, essas informações podem incluir os atributos do assembly, bem como referências a outros módulos e assemblies.Essa informação pode ser útil em determinar se um arquivo é um assembly ou parte de um assembly, e se o arquivo possui referências a outros módulos ou assemblies.

Para exibir o conteúdo de um assembly usando Ildasm.exe

  • Digite ildasm <nome do assembly > no prompt de comando.Por exemplo, o comando a seguir desmonta o assembly Hello.exe.

    ildasm Hello.exe
    

Para exibir informações do manifesto do assembly

  • Clique duas vezes no ícone MANIFESTO na janela do MSIL Disassembler.

Exemplo

O exemplo a seguir inicia com um programa "Hello, World" básico.Após compilar o programa, use Ildasm.exe para desmontar o assembly Hello.exe e exibir o manifesto do assembly.

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!");  
}

Executar o comando ildasm.exe no assembly Hello.exe e clicar duas vezes no ícone MANIFESTO na janela do IL DASM produz a saída a seguir:

.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

A tabela a seguir descreve cada diretiva no manifesto do assembly do assembly Hello.exe usado no exemplo.

Diretiva

Descrição

.assembly extern <nome de assembly >

Especifica outro assembly que contém itens referenciados pelo módulo atual (no exemplo, mscorlib).

.PublicKeyToken <token>

Especifica o token da chave real do assembly referenciado.

. ver <número de versão de >

Especifica o número de versão do assembly referenciado.

.assembly <nome de assembly >

Especifica o nome do assembly.

algoritmo .hash <valor de int32 >

Especifica o algoritmo de hash usado.

. ver <número de versão de >

Especifica o número de versão do assembly.

.módulo <nomede arquivo >

Especifica o nome dos módulos que compõem o assembly.Nesse exemplo, o assembly consiste de apenas um arquivo.

.subsistema <valor>

Especifica o ambiente de aplicativo necessário para o programa.Nesse exemplo, o valor 3 indica que este executável é executado a partir de um console.

.corflags

Atualmente, um campo reservado nos metadados.

Um manifesto do assembly pode conter um número de diretivas diferentes, dependendo do conteúdo do assembly.Para obter uma lista abrangente das diretivas no manifesto do assembly, consulte a documentação do ECMA, especialmente "partição II: Metadados definição e semântica "e" partição III: Conjunto de instruções CIL".A documentação está disponível online em https://msdn.Microsoft.com/net/ECMA/ and http://www.ECMA-International.org/publications/standards/Ecma-335.htm.

Consulte também

Conceitos

Domínios de Aplicativos e Assemblies

Domínios de Aplicativo e Tópicos Como Fazer de Assembly

Referência

Desassemblador do MSIL (ILDASM.exe)