Cerca

BadImageFormatException – Tentativo di caricare un programma con un formato non corretto – HRESULT: 0x8007000B

Indice Articolo

Ultimi articoli pubblicati

Il mondo dei computer sta facendo un cambio molto importante. Ogni giorno abbiamo molte persone che passano da un computer con una architettura 32bit (x86) ad una 64bit(x64). Se avete qualche progetto .NET che recentemente state portando in macchine x64 e sistematicamente il programma genera una eccezzione BadImageFormatException con un messaggio di errore “Tentativo di caricare un programma con un formato non corretto” (Eccezione da HRESULT: 0x8007000B), non preoccupatevi perchè il problema è meno serio del previsto.

Normalmente tutti noi quando compiliamo il nostro progetto come Target CPU, nelle proprietà del progetto, lasciamo Any CPU. Questo fa che quando il vostro progetto viene portato in una macchina x64 questo gira come un programma x64, ma se voi all’interno del programma referenziate qualche componente x86 il programma va in errore. Quindi la cosa migliore è quella di eseguire il vostro programma interamente a x86 visto che referenziate dei componenti di questo tipo, oppure provate e riportare tutto nella architettura x64.

Per eseguire un applicazione interamente a 32bit dovete impostare x86 nella proprietà Target CPU del vostro progetto. Noterete che questo risolverà il vostro problema e il vostro programma funzionerà senza problemi.

10 risposte

  1. ottima guida ma come faccio a modificare i targhet che mi dici se il programma photoshop non mi si apre neanche!!
    potresti descrivere i passi per eseguire queste modifiche? grazie

  2. non lo dei fare te… i sviluppatori di photoshop molto probabilmente caricano delle DLL di sistema in modo sbagliato.
    Incompatibilità della tua versione di photoshop con il tuo sistema operativo.
    Ciao

  3. Quindi in pratica non posso utilizzare photoshop su questo computer!!!
    non esistono delle dll da scaricare e sostituire a quelle già esistenti?

    grazie

  4. Penso che dovresti scarica una versione differente del programma. Non si tratta di cambiare solo delle DLL.
    Ciao

  5. CS 3, 4, 5… dovresti provare a scaricare una delle ultime.. o una che viene supportata nei sistemi x64…

  6. Incredibile! funziona alla grande! Stavo meditando il suicidio ma questo articolo mi ha salvato. Un enorme grazie a chi lo ha scritto.

  7. Diciamo che anche io ho navigato tanto prima di scoprire come fare per risolvere l’errore. Sono contento che ti ha risolto tutto…
    Ciao

  8. Scusa, ed io che ho un processore a 32 bit con win xp pro sp3 e vb2010…non dovrei avere questo problema è gia tutto x86! eppure ho il seguente errore : Tentativo di caricare un programma con un formato non corretto. (Eccezione da HRESULT: 0x8007000B)

    Non so se mi sono spiegato ? voglio dire che non parto da un processore x64 e sto sbagliando indicando una dll per x86…cioè già di default non c’è Any Cpu..ma è impostato x86..proprio perchè il mio pc è a 32 bit.
    cosa devo fare ?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

20 − sette =