Partager via


Dépannage des exceptions : System.BadImageFormatException

Une exception BadImageFormatException est levée lorsque l'image fichier d'une DLL ou d'un programme exécutable n'est pas un exécutable managé valide.

Conseils associés

  • Si votre application utilise les composants 32 bits, assurez-vous qu'elle s'exécute toujours comme une application 32 bits.
    Si la propriété Plateforme cible de votre projet d'application a la valeur AnyCPU, l'application compilée peut être exécutée en mode 64 bits ou 32 bits. Lorsqu'il s'exécute comme une application 64 bits, le compilateur juste-à-temps (JIT) génère du code natif 64 bits. Si l'application dépend d'un composant managé ou natif 32 bits, ce composant ne pourra pas être chargé en mode 64 bits. Pour résoudre ce problème, attribuez la valeur x86 à la propriété Plateforme cible, puis recompilez.

  • Vérifiez que vous n'utilisez pas un composant ayant été créé avec une autre version de .NET Framework.
    Cette exception est levée lorsqu'une application ou un composant développé à l'aide de .NET Framework 1.0 ou .NET Framework 1.1 tente de charger un assembly développé à l'aide de .NET Framework 2.0 SP1 ou version ultérieure, ou lorsqu'une application développée à l'aide de .NET Framework 2.0 SP1 ou .NET Framework 3.5 tente de charger un assembly développé à l'aide de .NET Framework 4. L'exception BadImageFormatException peut être signalée comme une erreur de compilation ou être levée au moment de l'exécution. Pour obtenir un exemple, consultez la classe BadImageFormatException.

  • Assurez-vous que l'image fichier est un assembly managé ou un module valide.
    Cette exception est levée lorsqu'une bibliothèque de liaisons dynamiques ou un fichier exécutable managé Load sont passés à la méthode en vue du chargement.

    Pour plus d'informations, les utilisateurs de Visual Basic peuvent consulter la rubrique Dépannage des problèmes liés à l'interopérabilité (Visual Basic).

Notes

La réflexion sur des fichiers exécutables C++ peut lever cette exception. Cela provient généralement de la suppression des adresses de réadressage ou de la section .Reloc du fichier exécutable par le compilateur C++. Pour conserver l'adresse de réadressage dans un fichier exécutable C++, spécifiez /fixed:no lors de la liaison.

Pour connaître les autres causes possibles de cette exception, consultez la classe BadImageFormatException.

Voir aussi

Tâches

Comment : utiliser l'Assistant Exception

Référence

BadImageFormatException

Historique des modifications

Date

Historique

Motif

Avril 2011

Ajout des causes courantes de l'exception.

Commentaires client.