Partager via


Visualisation du contenu des assemblys

Vous pouvez utiliser MSIL Disassembler (Ildasm.exe) pour visualiser les informations de langage MSIL (Microsoft Intermediate Language) dans un fichier. Si le fichier examiné est un assembly, ces informations peuvent inclure les attributs de l'assembly, ainsi que des références à d'autres modules et assemblys. Ces informations peuvent être utiles pour déterminer si un fichier est un assembly ou fait partie d'un assembly et s'il a des références à d'autres modules ou assemblys.

Pour visualiser le contenu d'un assembly

  • À l'invite de commande, tapez la commande suivante :

    ildasm <nom de l'assembly>

    Dans cette commande, nom de l'assembly représente le nom de l'assembly à examiner.

L'exemple suivant ouvre l'assembly Hello.exe.

ildasm Hello.exe

Pour visualiser les informations du manifeste de l'assembly, double-cliquez sur l'icône du manifeste dans la fenêtre du désassembleur MSIL Disassembler.

Hello, World, exemple

L'exemple suivant montre un programme de base « Hello, World ».

Imports System
Public Module modmain
   Sub Main()
      Console.WriteLine ("Hello World using Visual Basic!")
   End Sub
End Module 
[C#]
using System;
class MainApp {
     public static void Main() {
        Console.WriteLine("Hello World using C#!");    
    }
}
[C++]
#using <mscorlib.dll>
using namespace System;
void main() {
   Console::WriteLine(L"Hello World using Managed Extensions!");  
}

En utilisant Ildasm.exe, vous pouvez visualiser les informations suivantes dans le manifeste de l'assembly :

.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

Directives de manifeste de l'assembly

Le tableau suivant décrit chaque directive du manifeste de l'assembly de l'exemple « Hello, World ».

Directive Description
.assembly extern <nom de l'assembly> Spécifie un autre assembly contenant des éléments référencés par le module en cours (dans cet exemple, mscorlib).
        .publickeytoken <jeton> Spécifie le jeton de la clé réelle de l'assembly référencé.
        .ver <numéro de version> Spécifie le numéro de version de l'assembly référencé.
.assembly <nom de l'assembly> Spécifie le nom d'assembly.
        .hash algorithm <valeur int32> Spécifie l'algorithme de hachage utilisé.
        .ver <numéro de version> Spécifie le numéro de version de l'assembly.
.module <nom du fichier> Spécifie le nom des modules composant l'assembly. Dans cet exemple, l'assembly n'est constitué que d'un seul fichier.
.subsystem <valeur> Spécifie l'environnement d'application requis pour le programme. Dans cet exemple, la valeur 3 indique que cet exécutable est exécuté à partir d'une console.
.corflags Actuellement, un champ réservé dans les métadonnées.

Un manifeste de l'assembly peut contenir plusieurs directives différentes, en fonction du contenu de l'assembly. Pour obtenir une liste complète des directives du manifeste de l'assembly, consultez la documentation ECMA pour les métadonnées, du Kit de développement .NET Framework SDK situé dans le répertoire Tool Developer's Guide.

Voir aussi

Création d'assemblys | MSIL Disassembler (Ildasm.exe) | Programmation à l'aide d'assemblys