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