Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe BadImageFormatException

Eccezione generata quando l'immagine di una libreria a collegamento dinamico (DLL) o un di un programma eseguibile non è valida.

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

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

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

Il tipo BadImageFormatException espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreBadImageFormatException()Inizializza una nuova istanza di BadImageFormatException classe.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreBadImageFormatException(String)Inizializza una nuova istanza di BadImageFormatException classe con un messaggio di errore specificato.
Metodo protettoBadImageFormatException(SerializationInfo, StreamingContext)Inizializza una nuova istanza di BadImageFormatException classe con i dati serializzati.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreBadImageFormatException(String, Exception)Inizializza una nuova istanza di BadImageFormatException classe con un messaggio di errore specificato e un riferimento all'eccezione interna che rappresenta la causa di questa eccezione.
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreBadImageFormatException(String, String)Inizializza una nuova istanza di BadImageFormatException classe con un messaggio di errore e un nome file specificati.
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreBadImageFormatException(String, String, Exception)Inizializza una nuova istanza di BadImageFormatException classe con un messaggio di errore specificato e un riferimento all'eccezione interna che rappresenta la causa di questa eccezione.
In alto

  NomeDescrizione
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreData Ottiene una collezione di coppie chiave/valore che forniscono ulteriori informazioni definite dall'utente sull'eccezione. (Ereditato da Exception)
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFileNameOttiene il nome del file che genera questa eccezione.
Proprietà pubblicaFusionLogOttiene il file di log che descrive perché caricamento di un assembly non riuscire.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreHelpLinkOttiene o imposta un collegamento al file della Guida associato all'eccezione. (Ereditato da Exception)
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreHResult Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato ad una specifica eccezione. (Ereditato da Exception)
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreInnerExceptionOttiene l'istanza di Exception che ha causato l'eccezione corrente. (Ereditato da Exception)
Proprietà pubblicaSupportato da XNA FrameworkMessageOttiene il messaggio di errore e il nome del file che ha causato l'eccezione. (Esegue l'override di Exception.Message).

In XNA Framework 3.0 questo membro viene ereditato da Exception.Message.
Proprietà pubblicaSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSourceOttiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore. (Ereditato da Exception)
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreStackTrace Ottiene una rappresentazione in forma di stringa dei frame nello stack di chiamate. (Ereditato da Exception)
Proprietà pubblicaTargetSite Ottiene il metodo che ha generato l'eccezione corrente. (Ereditato da Exception)
In alto

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo protettoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetBaseExceptionSe utilizzato come metodo di override in una classe derivata, restituisce l'Exception che è la causa radice di una o più eccezioni successive. (Ereditato da Exception)
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetObjectDataimposta SerializationInfo oggetto con il nome file, il log dell'assembly Cache e le informazioni sull'eccezione aggiuntive. (Esegue l'override di Exception.GetObjectData(SerializationInfo, StreamingContext)).
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetTypeOttiene il tipo di runtime dell'istanza corrente. (Ereditato da Exception)

In XNA Framework 3.0 questo membro viene ereditato da Object.GetType().


In Libreria di classi portabile Libreria di classi portabile questo membro viene ereditato da Object.GetType().


In .NET per applicazioni Windows Store Windows 8 questo membro viene ereditato da Object.GetType().
Metodo protettoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkToStringRestituisce il nome completo dell'eccezione ed eventualmente il messaggio di errore, il nome dell'eccezione interna e analisi dello stack. (Esegue l'override di Exception.ToString()).

In XNA Framework, ToString() esegue l'override di questo membro.
In alto

  NomeDescrizione
Evento protettoSerializeObjectStateSi verifica quando un'eccezione viene serializzata per creare un oggetto stato di eccezione che contiene dati serializzati sull'eccezione. (Ereditato da Exception)
In alto

Questa eccezione viene generata quando il formato di file di una DLL (file DLL) o un eseguibile (file EXE) non è conforme al formato previsto da Common Language Runtime. In particolare, viene generata l'eccezione nelle seguenti circostanze:

  • Una versione precedente di un'utilità di.NET Framework, ad esempio ILDasm.exe o installutil.exe, viene utilizzata con un assembly compilato con una versione successiva di .NET Framework.

    Per risolvere questa eccezione, utilizzare la versione dello strumento che corrisponde alla versione di .NET Framework utilizzata per compilare l'assembly. ciò può richiedere modificare Path variabile di ambiente o fornire un percorso completo eseguibile corretto.

  • Viene effettuato un tentativo di caricare una DLL o un eseguibile non gestito (ad esempio una DLL di sistema di Windows) come se fosse un assembly. .NET Framework. Nell'esempio seguente viene illustrato questo utilizzo Assembly.LoadFile metodo per caricare 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.
    
    
    

    Per risolvere questa eccezione, accedere ai metodi definiti nella DLL utilizzando le funzionalità fornite dal linguaggio di sviluppo, ad esempio Declare un'istruzione in Visual Basic o DllImportAttribute attributo con extern parola chiave in c#.

  • UNA DLL o un eseguibile viene caricato come assembly a 64 bit, ma contiene funzionalità o risorse a 32 bit. Ad esempio, si basa sull'interoperabilità COM o chiama i metodi in una DLL a 32 bit.

    Per risolvere questa eccezione, impostare il progetto La piattaforma di destinazione la proprietà su x86 (anziché x64 o AnyCPU) e ricompila.

  • I componenti sono state create tramite versioni diverse di.NET Framework. In genere, questa eccezione viene generata quando un'applicazione o un componente che sono state sviluppate con .NET Framework 1.0 o .NET Framework 1.1 tenta di caricare un assembly sviluppato utilizzando il .NET Framework 2.0 SP1 o versione successiva, o quando un'applicazione sviluppata utilizzando il .NET Framework 2.0 SP1 o .NET Framework 3.5 tenta di caricare un assembly sviluppato utilizzando il .NET Framework 4. BadImageFormatException può essere segnalata come errore in fase di compilazione, o eccezione può essere generata in fase di esecuzione. Nell'esempio seguente viene illustrato questo scenario. Definisce un oggetto StringLib classe che dispone di un singolo membro, ToProperCasee che si trova in un assembly denominato StringLib.dll.

    
    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.
    
    
    

    Nell'esempio seguente viene utilizzata la reflection per caricare un assembly denominato StringLib.dll. Se il codice sorgente viene compilato con un oggetto .NET Framework 1.1 compilatore, a BadImageFormatException è generato da Assembly.LoadFrom metodo.

    
    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);
       }
    }
    
    
    

    Per risolvere questa eccezione, assicurarsi che l'assembly che viene generata l'eccezione tenta di caricare un assembly sviluppato con una versione compatibile di .NET Framework.

BadImageFormatException utilizza il HRESULT COR_E_BADIMAGEFORMAT, che presenta il valore 0x8007000B.

Per un elenco di valori di proprietà iniziali per un'istanza di BadImageFormatException, vedere BadImageFormatException costruttori.

.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft