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.

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.

Community-Beiträge

Anzeigen: