Procedura: Visualizzare il contenuto dell'assemblyHow to: View Assembly Contents

È possibile usare Ildasm.exe (IL Disassembler) per visualizzare informazioni di Microsoft Intermediate Language (MSIL) in un file.You can use the Ildasm.exe (IL Disassembler) to view Microsoft intermediate language (MSIL) information in a file. Se il file esaminato è un assembly, è possibile che le informazioni includano gli attributi dell'assembly, oltre a riferimenti ad altri moduli e assembly.If the file being examined is an assembly, this information can include the assembly's attributes, as well as references to other modules and assemblies. Queste informazioni possono risultare utili nel determinare se un file è un assembly o se è parte di un assembly e se il file contiene riferimenti ad altri moduli o assembly.This information can be helpful in determining whether a file is an assembly or part of an assembly, and whether the file has references to other modules or assemblies.

Per visualizzare il contenuto di un assembly usando Ildasm.exeTo display the contents of an assembly using Ildasm.exe

  1. Al prompt dei comandi digitare ildasm <nome assembly>.Type ildasm <assembly name> at the command prompt. Ad esempio, il comando seguente esegue il disassemblaggio dell'assembly Hello.exe.For example, the following command disassembles the Hello.exe assembly.

    ildasm Hello.exe  
    

Per visualizzare informazioni del manifesto dell'assemblyTo view assembly manifest information

  1. Fare doppio clic sull'icona MANIFESTO nella finestra Disassembler MSIL.Double-click the MANIFEST icon in the MSIL Disassembler window.

EsempioExample

L'esempio seguente avvia un programma "Hello, World" di base.The following example starts with a basic "Hello, World" program. Dopo aver compilato il programma usare Ildasm.exe per disassemblare l'assembly Hello.exe e visualizzarne il manifesto.After compiling the program, use Ildasm.exe to disassemble the Hello.exe assembly and view the assembly manifest.

using namespace System;

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

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

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

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

Se si esegue il comando ildasm.exe nell'assembly Hello.exe e si fa doppio clic sull'icona MANIFESTO nella finestra IL DASM, viene prodotto l'output seguente:Running the command ildasm.exe on the Hello.exe assembly and double-clicking the MANIFEST icon in the IL DASM window produces the following output:

// 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  

La tabella seguente descrive ogni direttiva del manifesto dell'assembly relativo all'assembly Hello.exe usato nell'esempio.The following table describes each directive in the assembly manifest of the Hello.exe assembly used in the example.

DirettivaDirective DescrizioneDescription
.assembly extern < nome assembly >.assembly extern < assembly name > Specifica un altro assembly contenente elementi a cui il modulo corrente fa riferimento (in questo esempio mscorlib).Specifies another assembly that contains items referenced by the current module (in this example, mscorlib).
.publickeytoken < token >.publickeytoken < token > Specifica il token della chiave effettiva dell'assembly a cui viene fatto riferimento.Specifies the token of the actual key of the referenced assembly.
.ver < numero versione >.ver < version number > Specifica il numero di versione dell'assembly a cui viene fatto riferimento.Specifies the version number of the referenced assembly.
.assembly < nome assembly >.assembly < assembly name > Specifica il nome dell'assembly.Specifies the assembly name.
.hash algorithm < valore int32 >.hash algorithm < int32 value > Specifica l'algoritmo hash usato.Specifies the hash algorithm used.
.ver < numero versione >.ver < version number > Specifica il numero di versione dell'assembly.Specifies the version number of the assembly.
.module < nome file >.module < file name > Specifica il nome dei moduli che costituiscono l'assembly.Specifies the name of the modules that make up the assembly. In questo esempio l'assembly è costituito da un unico file.In this example, the assembly consists of only one file.
.subsystem < valore >.subsystem < value > Specifica l'ambiente di applicazione necessario per il programma.Specifies the application environment required for the program. In questo esempio il valore 3 indica che il file eseguibile viene eseguito da una console.In this example, the value 3 indicates that this executable is run from a console.
.corflags.corflags Attualmente, campo riservato nei metadati.Currently a reserved field in the metadata.

Il manifesto di un assembly può contenere diverse direttive, a seconda del contenuto dell'assembly.An assembly manifest can contain a number of different directives, depending on the contents of the assembly. Per un elenco completo delle direttive del manifesto dell'assembly, vedere la documentazione ECMA, in particolare "Partition II: Metadata Definition and Semantics" (Partizione II: Definizione dei metadati e semantica) e "Partition III: CIL Instruction Set" (Partizione III: Set di istruzioni CIL).For an extensive list of the directives in the assembly manifest, see the ECMA documentation, especially "Partition II: Metadata Definition and Semantics" and "Partition III: CIL Instruction Set". La documentazione è disponibile online; vedere ECMA C# and Common Language Infrastructure Standards (ECMA C# e standard di Common Language Infrastructure) in MSDN e Standard ECMA-335 - Common Language Infrastructure (CLI) nel sito Web internazionale Ecma.The documentation is available online; see ECMA C# and Common Language Infrastructure Standards on MSDN and Standard ECMA-335 - Common Language Infrastructure (CLI) on the Ecma International Web site.

Vedere ancheSee Also

Domini applicazione e assemblyApplication Domains and Assemblies
Argomenti relativi alle procedure per domini applicazione e assemblyApplication Domains and Assemblies How-to Topics
Ildasm.exe (Disassembler IL)Ildasm.exe (IL Disassembler)