Compartilhar via


Exceções de solução de problemas: System.BadImageFormatException

Uma exceção BadImageFormatException é gerada quando a imagem do arquivo de uma DLL ou um programa executável não é válido.

Dicas relacionadas

  • Se seu aplicativo usar componentes de 32 bits, verifique se ele sempre é executado como um aplicativo de 32 bits.
    Se a propriedade Destino da plataforma para seu projeto de aplicativo for definida como AnyCPU, o aplicativo compilado poderá ser executado no modo de 64 bits ou de 32 bits. Quando é executado como um aplicativo de 64 bits, o compilador de JIT (Just-In-Time) gera o código nativo de 64 bits. Se o aplicativo depende de um componente gerenciado ou não gerenciado de 32 bits, esse componente não carregará no modo de 64 bits. Para corrigir esse problema, defina a propriedade Destino da plataforma do projeto como x86 e recompile.

  • Verifique se você não está usando um componente que foi criado com uma versão diferente do .NET Framework.
    Esta exceção é gerada quando um aplicativo ou componente que foi desenvolvido usando o .NET Framework 1,0 ou .NET Framework 1,1 tentar carregar um assembly que foi desenvolvido usando o .NET Framework 2.0 SP1 ou superior, ou quando um aplicativo que foi desenvolvido usando o .NET Framework 2.0 SP1 ou .NET Framework 3,5 tentar carregar um assembly que foi desenvolvido usando o .NET Framework 4. A exceção BadImageFormatException pode ser reportada como um erro de tempo de compilação ou a exceção pode ser gerada em tempo de execução. Consulte a classe BadImageFormatException para obter um exemplo.

  • Verifique se a imagem do arquivo é um assembly gerenciado ou módulo válido.
    Esta exceção é gerada quando uma biblioteca ou executável de vínculo dinâmico não gerenciado é passado para o método Load para carregar.

    Para obter mais informações, os usuários do Visual Basic podem consultar Solucionando problemas de interoperabilidade (Visual Basic).

Comentários

Refletir em arquivos executáveis C++ pode gerar essa exceção. Isso é muito provavelmente causado pelo compilador C++ que retira os endereços de realocação ou a seção .Reloc do arquivo executável. Para preservar o endereço .relocation em um arquivo executável C++, especifique /fixed:no ao vincular.

Para obter mais causa dessa exceção, consulte a classe BadImageFormatException.

Consulte também

Tarefas

Como usar o Assistente de Exceção

Referência

BadImageFormatException