Rozwiązywanie problemów z wyjątkami: System.BadImageFormatException

 

A BadImageFormatException wyjątek jest generowany, gdy nazwa pliku DLL lub program wykonywalny jest nieprawidłowy.

Skojarzone porady

  • Jeśli aplikacja używa 32-bitowych składników, upewnij się, że jest on zawsze uruchamiany jako aplikacja 32-bitowa. 
    Jeśli platformy docelowej właściwości projektu aplikacji ustawiono AnyCPU, skompilowana aplikacja może działać w trybie 64-bitowego lub 32-bitowych. Po uruchomieniu jako aplikacja 64-bitowy kompilator just-in-time (JIT) tworzy macierzystego kodu 64-bitowego. Jeśli aplikacja jest zależna od składnika zarządzanego lub niezarządzanego 32-bitowego, tego składnika zakończy się niepowodzeniem załadować w trybie 64-bitowym. Aby rozwiązać ten problem, należy ustawić projektu platformy docelowej dla właściwości x86 i ponownie skompilować.

  • Upewnij się, że nie używasz składnika, który został utworzony w innej wersji programu .NET Framework.
    Ten wyjątek jest generowany, gdy aplikacja lub składnik, który został opracowany przy użyciu .NET Framework 1.0 lub .NET Framework 1.1 próbuje załadować zestaw, który został opracowany przy użyciu .NET Framework 2.0 z dodatkiem SP1 lub później, lub gdy aplikacja, która została opracowana za pomocą .NET Framework 2.0 z dodatkiem SP1 lub Program .NET Framework 3,5 próbuje załadować zestaw, który został opracowany przy użyciu Program .NET Framework 4.BadImageFormatException Wyjątek może być zgłaszany jako błąd kompilacji lub może zostać zgłoszony wyjątek w czasie wykonywania. Zobacz BadImageFormatException klasy, na przykład.

  • Upewnij się, że nazwa pliku jest nieprawidłowy zestaw zarządzany lub modułu.
    Ten wyjątek jest generowany, gdy biblioteka dołączana dynamicznie niezarządzane lub plik wykonywalny jest przekazywany do Load metodę ładowania.

    Aby uzyskać więcej informacji, Visual Basic, użytkownicy mogą odwoływać się do Rozwiązywanie problemów związanych z współdziałaniem (Visual Basic)

Uwagi

Odzwierciedlający na plików wykonywalnych języka C++ może zgłaszać ten wyjątek. To najprawdopodobniej spowodowane przez powielanie adresów przeniesienia kompilatora C++ lub. Sekcja Reloc z pliku wykonywalnego. Aby zachować adres .relocation w pliku wykonywalnego języka C++, określ /fixed:no podczas łączenia.

O innych przyczynach tego wyjątku, zobacz BadImageFormatException klasy.

Zobacz też

BadImageFormatException
How to: Use the Exception Assistant