Postupy: Zobrazení obsahu sestavení

Můžete použít Ildasm.exe (MSIL Disassembler), chcete-li zobrazit informace ze souboru jazyka MSIL (Microsoft Intermediate Language). Pokud se jedná o prohlížení souboru sestavení, tyto informace mohou zahrnovat atributy sestavení, stejně jako odkazy na jiné moduly a sestavení. Tyto informace mohou být užitečné při určování, zda se jedná o soubor sestavení nebo část sestavení a zda soubor obsahuje odkazy na jiné moduly nebo sestavení.

Chcete-li zobrazit obsah sestavení pomocí Ildasm.exe

  • Zadejte ildasm <Název sestavení > na příkazový řádek. Například následující příkaz provede zpětný překlad sestavení Hello.exe.

    ildasm Hello.exe
    

Chcete-li zobrazit informace manifestu sestavení

  • Klikněte na ikonu MANIFEST v okně MSIL Disassembler.

Příklad

Následující příklad spustí základní program "Hello, World". Po kompilaci programu použijte Ildasm.exe pro zpětný překlad sestavení Hello.exe a zobrazení manifestu sestavení.

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();
}

Spuštění příkazu ildasm.exe pro sestavení Hello.exe a kliknutí na ikonu MANIFEST v okně IL DASM vytvoří následující výstup:

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

Následující tabulka popisuje každou direktivu v manifestu sestavení sestavení Hello.exe použitého v příkladu.

Direktiva

Popis

.assembly extern <název sestavení >

Určuje jiná sestavení, která obsahují položky, na které odkazuje aktuální modul (v tomto příkladu mscorlib).

.publickeytoken <token>

Určuje token aktuálního klíče odkazovaného sestavení.

.ver <číslo verze >

Určuje číslo verze odkazovaného sestavení.

.assembly <název sestavení >

Určuje název sestavení.

.hash algorithm <hodnota int32 >

Určuje použitý hash algoritmus.

.ver <číslo verze >

Určuje číslo verze sestavení.

.module <název souboru >

Určuje název modulů, které tvoří sestavení. V tomto příkladu se sestavení skládá pouze z jednoho souboru.

.subsystém <hodnota>

Určuje prostředí aplikace potřebné pro program. V tomto příkladu hodnota 3 označuje, že je tento spustitelný soubor spuštěn z konzoly.

.corflags

Aktuálně rezervované pole v metadatech.

Manifest sestavení může obsahovat čísla různých směrnic, v závislosti na obsahu sestavení. Rozsáhlý seznam směrnic v manifestu sestavení naleznete v ECMA dokumentaci, zejména v oddíle II: Definice metadat a sémantiky a v oddílu III: Sada instrukcí CIL". Dokumentace je k dispozici online; Viz ECMA C# a společné normy jazykové infrastruktury na webu MSDN a standardu ECMA-335 - společné jazykové infrastruktury (CLI) na webu organizace Ecma International.

Viz také

Odkaz

Ildasm.exe (MSIL Disassembler)

Koncepty

Domény aplikace a sestavení

Témata o postupech pro domény a sestavení aplikace