Gewusst wie: Bestimmen, ob eine Datei eine Assembly ist (C#-Programmierhandbuch)

Aktualisiert: November 2007

Eine Datei ist nur dann eine Assembly, wenn sie verwaltet wird und einen Assemblyeintrag in ihren Metadaten enthält. Weitere Informationen über Assemblys und Metadaten finden Sie im Thema Assemblymanifest.

So bestimmen Sie manuell, ob eine Datei eine Assembly ist

  1. Starten Sie MSIL Disassembler-Tool (Ildasm.exe).

  2. Laden Sie die Datei, die Sie testen möchten.

  3. Wenn ILDASM meldet, dass es sich bei der Datei nicht um eine übertragbare ausführbare Datei handelt, ist sie keine Assembly. Weitere Informationen finden Sie unter dem Thema Gewusst wie: Ansichtsassemblyinhalt.

So bestimmen Sie programmgesteuert, ob eine Datei eine Assembly ist

  1. Rufen Sie die GetAssemblyName-Methode auf, und übergeben Sie ihr den vollständigen Pfad und den Namen der Datei, die Sie testen möchten.

  2. Wenn eine BadImageFormatException-Ausnahme ausgelöst wird, ist die Datei keine Assembly.

Beispiel

In diesem Beispiel wird eine DLL darauf getestet, ob sie eine Assembly ist.

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

Die GetAssemblyName-Methode lädt die Testdatei und gibt sie frei, sobald die Informationen gelesen wurden.

Siehe auch

Aufgaben

Problembehandlung bei Ausnahmen: System.BadImageFormatException

Konzepte

C#-Programmierhandbuch

Referenz

Assemblys und der globale Assemblycache (C#-Programmhandbuch)

AssemblyName