Comment : déterminer si un fichier est un assembly (Guide de programmation C#)

Mise à jour : novembre 2007

Un fichier est un assembly si et uniquement s'il est managé et contient une entrée d'assembly dans ses métadonnées. Pour plus d'informations sur les assemblys et les métadonnées, consultez Manifeste d'assembly.

Comment déterminer manuellement si un fichier est un assembly

  1. Démarrez l'outil MSIL Disassembler (Ildasm.exe).

  2. Chargez le fichier que vous voulez tester.

  3. Si ILDASM rapporte que le fichier n'est pas un fichier portable exécutable (PE), il ne s'agit donc pas d'un assembly. Pour plus d'informations, consultez la rubrique Comment : afficher le contenu d'un assembly.

Comment déterminer par programme si un fichier est un assembly

  1. Appelez la méthode GetAssemblyName, en passant le chemin d'accès complet et le nom du fichier vous testez.

  2. Si une exception BadImageFormatException est levée, le fichier n'est pas un assembly.

Exemple

Cet exemple teste une DLL pour voir s'il s'agit d'un assembly.

class TestAssembly
{
    static void Main()
    {

        try
        {
            System.Reflection.AssemblyName testAssembly =
                System.Reflection.AssemblyName.GetAssemblyName(@"C:\Windows\Microsoft.NET\Framework\v3.5\System.Net.dll");

            System.Console.WriteLine("Yes, the file is an Assembly.");
        }

        catch (System.IO.FileNotFoundException)
        {
            System.Console.WriteLine("The file cannot be found.");
        }

        catch (System.BadImageFormatException)
        {
            System.Console.WriteLine("The file is not an Assembly.");
        }

        catch (System.IO.FileLoadException)
        {
            System.Console.WriteLine("The Assembly has already been loaded.");
        }
    }
}
/* Output (with .NET Framework 3.5 installed):
    Yes, the file is an Assembly.
*/

La méthode GetAssemblyName charge le fichier de test, puis le libère une fois les informations sont lues.

Voir aussi

Tâches

Dépannage des exceptions : System.BadImageFormatException

Concepts

Guide de programmation C#

Référence

Assemblys et le Global Assembly Cache (Guide de programmation C#)

AssemblyName