(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

BadImageFormatException-Klasse

Die Ausnahme, die bei Ungültigkeit des Image einer DLL (Dynamic Link Library)-Datei oder einer ausführbaren Programmdatei ausgelöst wird.

System.Object
  System.Exception
    System.SystemException
      System.BadImageFormatException

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class BadImageFormatException : SystemException

Der BadImageFormatException-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifBadImageFormatException()Initialisiert eine neue Instanz der BadImageFormatException-Klasse.
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifBadImageFormatException(String)Initialisiert eine neue Instanz der BadImageFormatException-Klasse mit einer angegebenen Fehlermeldung.
Geschützte MethodeBadImageFormatException(SerializationInfo, StreamingContext)Initialisiert eine neue Instanz der BadImageFormatException-Klasse mit serialisierten Daten.
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifBadImageFormatException(String, Exception)Initialisiert eine neue Instanz der BadImageFormatException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.
Öffentliche MethodeBadImageFormatException(String, String)Initialisiert eine neue Instanz der BadImageFormatException-Klasse mit einer angegebenen Fehlermeldung und einem angegebenen Dateinamen.
Öffentliche MethodeBadImageFormatException(String, String, Exception)Initialisiert eine neue Instanz der BadImageFormatException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftDataRuft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zu der Ausnahme bereitstellen. (Von Exception geerbt.)
Öffentliche EigenschaftFileNameRuft den Namen der Datei ab, die diese Ausnahme verursacht hat.
Öffentliche EigenschaftFusionLogRuft die Protokolldatei ab, in der beschrieben wird, warum das Laden einer Assembly fehlschlug.
Öffentliche EigenschaftHelpLinkRuft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest. (Von Exception geerbt.)
Geschützte EigenschaftUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifHResultRuft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist. (Von Exception geerbt.)
Öffentliche EigenschaftUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifInnerExceptionRuft die Exception-Instanz ab, die die aktuelle Ausnahme verursachte. (Von Exception geerbt.)
Öffentliche EigenschaftUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifMessageRuft die Fehlermeldung und den Namen der Datei ab, die diese Ausnahme verursacht hat. (Überschreibt Exception.Message.)

In XNA Framework 3.0 wird dieser Member von Exception.Message.


In   wird dieser Member von Exception.Message.
Öffentliche EigenschaftSourceGibt den Namen der Anwendung oder des Objekts zurück, das den Fehler verursacht hat, oder legt diesen fest. (Von Exception geerbt.)
Öffentliche EigenschaftUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifStackTraceRuft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab. (Von Exception geerbt.)
Öffentliche EigenschaftTargetSiteRuft die Methode ab, die die aktuelle Ausnahme auslöst. (Von Exception geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifEquals(Object) Bestimmt, ob das übergegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifGetBaseExceptionGibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die ursprüngliche Ursache für eine oder mehrere nachfolgende Ausnahmen ist. (Von Exception geerbt.)
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifGetHashCodeFungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche MethodeGetObjectDataLegt das SerializationInfo-Objekt mit dem Dateinamen, dem Assemblycache-Protokoll und zusätzlichen Informationen zur Ausnahme fest. (Überschreibt Exception.GetObjectData(SerializationInfo, StreamingContext).)
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifGetTypeRuft den Laufzeittyp der aktuellen Instanz ab. (Von Exception geerbt.)

In XNA Framework 3.0 wird dieser Member von Object.GetType().


In   wird dieser Member von Object.GetType().
Geschützte MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeUnterstützt von XNA Framework92hkyaf2.PortableClassLibrary(de-de,VS.100).gifToStringGibt den vollqualifizierten Namen dieser Ausnahme und ggf. die Fehlermeldung sowie den Namen der inneren Ausnahme und die Stapelüberwachung zurück. (Überschreibt Exception.ToString().)

In XNA Framework wird dieser Member von ToString() überschrieben.


In wird dieser Member von ToString() überschrieben.
Zum Seitenanfang

  NameBeschreibung
Geschütztes EreignisSerializeObjectStateTritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt zu erstellen, das serialisierte Daten für die Ausnahme enthält. (Von Exception geerbt.)
Zum Seitenanfang

Diese Ausnahme wird ausgelöst, wenn das Dateiformat einer Dynamic Link Library (DLL-Datei) oder einer ausführbaren Datei (EXE-Datei) dem Format nicht entspricht, das von der Common Language Runtime erwartet wird. Die Ausnahme wird unter den folgenden Bedingungen ausgelöst:

  • Eine frühere Version eines .NET Framework-Hilfsprogramms, z. B. ILDasm.exe oder installutil.exe, wird mit einer Assembly verwendet, die mit einer höheren Version von .NET Framework entwickelt wurde.

    Um diese Ausnahme zu behandeln, verwenden Sie das Tool, das der Version von .NET Framework entspricht, die zum Entwickeln der Assembly verwendet wurde. Dies erfordert möglicherweise das Ändern der Path-Umgebungsvariable oder Bereitstellen eines vollqualifizierten Pfads für die richtige ausführbare Datei.

  • Es wird versucht, eine nicht verwaltete Dynamic Link Library oder eine ausführbare Datei (z. B. eine Windows-System-DLL) zu laden, als ob es eine .NET Framework-Assembly ist. Im folgenden Beispiel wird dies mithilfe der Assembly.LoadFile-Methode zum Laden von Kernel32.dll.

    
    // Windows DLL (non-.NET assembly)
    string filePath = Environment.ExpandEnvironmentVariables("%windir%");
    if (! filePath.Trim().EndsWith(@"\"))
       filePath += @"\";
    filePath += @"System32\Kernel32.dll";
    
    try {
       Assembly assem = Assembly.LoadFile(filePath);
    }
    catch (BadImageFormatException e) {
       Console.WriteLine("Unable to load {0}.", filePath);
       Console.WriteLine(e.Message.Substring(0, 
                         e.Message.IndexOf(".") + 1));   
    }
    // The example displays an error message like the following:
    //       Unable to load C:\WINDOWS\System32\Kernel32.dll.
    //       The module was expected to contain an assembly manifest.
    
    
    

    Um diese Ausnahme zu behandeln, greifen Sie auf die in der DLL definierten Methoden zu, indem Sie die von der Entwicklungssprache bereitgestellten Funktionen verwenden, z. B. die Declare-Anweisung in Visual Basic oder das DllImportAttribute-Attribut mit dem extern-Schlüsselwort in C#.

  • Eine DLL oder eine ausführbare Datei wird als 64-Bit-Assembly geladen, aber sie enthält 32-Bit-Funktionen oder Ressourcen. Es benötigt z. B. COM-Interop oder ruft Methoden in einer 32-Bit-Dynamic Link Library auf.

    Um diese Ausnahme zu behandeln, legen Sie die Eigenschaft Zielplattform des Projekts auf x86 (statt x64 oder AnyCPU) fest und kompilieren diese neu.

  • Komponenten wurden mit anderen Versionen von .NET Framework erstellt. In der Regel tritt diese Ausnahme auf, wenn eine Anwendung oder eine Komponente, die mit .NET Framework 1.0 entwickelt wurde, oder der .NET Framework 1.1 versucht, eine Assembly zu laden, die mit .NET Framework 2.0 SP1 oder höher entwickelt wurde, oder wenn eine Anwendung, die mit .NET Framework 2.0 SP1 oder .NET Framework 3.5 entwickelt wurde, versucht, eine Assembly zu laden, die mit .NET Framework 4 entwickelt wurde. Der BadImageFormatException wird möglicherweise als Kompilierungsfehler gemeldet, oder die Ausnahme wird möglicherweise zur Laufzeit ausgelöst. Dieser Prozess wird anhand des folgenden Szenarios veranschaulicht. Es wird eine StringLib-Klasse definiert, die über einen einzigen Member (ToProperCase) verfügt und sich in der Assembly StringLib.dll befindet.

    
    using System;
    
    public class StringLib
    {
       private string[] exceptionList = { "a", "an", "the", "in", "on", "of" };
       private char[] separators = { ' ' };
    
       public string ToProperCase(string title)
       {
          bool isException = false;	
    
          string[] words = title.Split( separators, StringSplitOptions.RemoveEmptyEntries);
          string[] newWords = new string[words.Length];
    		
          for (int ctr = 0; ctr <= words.Length - 1; ctr++)
          {
             isException = false;
    
             foreach (string exception in exceptionList)
             {
                if (words[ctr].Equals(exception) && ctr > 0)
                {
                   isException = true;
                   break;
                }
             }
    
             if (! isException)
                newWords[ctr] = words[ctr].Substring(0, 1).ToUpper() + words[ctr].Substring(1);
             else
                newWords[ctr] = words[ctr];	 
          }	
          return String.Join(" ", newWords); 			
       }
    }
    // Attempting to load the StringLib.dll assembly produces the following output:
    //    Unhandled Exception: System.BadImageFormatException: 
    //                         The format of the file 'StringLib.dll' is invalid.
    
    
    

    Im folgenden Beispiel wird Reflektion verwendet, um eine Assembly mit dem Namen StringLib.dll zu laden. Wenn der Quellcode mit einem .NET Framework 1.1-Compiler kompiliert wird, wird eine BadImageFormatException von der Assembly.LoadFrom-Methode ausgelöst.

    
    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          string title = "a tale of two cities";
    //      object[] args = { title}
          // Load assembly containing StateInfo type.
          Assembly assem = Assembly.LoadFrom(@".\StringLib.dll");
          // Get type representing StateInfo class.
          Type stateInfoType = assem.GetType("StringLib");
          // Get Display method.
          MethodInfo mi = stateInfoType.GetMethod("ToProperCase");
          // Call the Display method. 
          string properTitle = (string) mi.Invoke(null, new object[] { title } );
          Console.WriteLine(properTitle);
       }
    }
    
    
    

    Um diese Ausnahme zu behandeln, stellen Sie sicher, dass die Assembly, von der die Ausnahme ausgelöst wird, versucht, eine Assembly zu laden, die mit einer kompatiblen Version von .NET Framework entwickelt wurde.

BadImageFormatException verwendet HRESULT COR_E_BADIMAGEFORMAT mit dem Wert 0x8007000B.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von BadImageFormatException finden Sie unter BadImageFormatException-Konstruktoren.

.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft