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)