Ottenere un BadImageFormatException
-
27-10-2019 - |
Domanda
ho alcune componenti aggiuntivi dal System.AddIn. Ma quando si esegue l'AddInStore.Rebuild,
string[] warnings = AddInStore.Rebuild(addInRoot);
allora ottengo un back stringa di avviso:
Il file non è un binario valida: D: \ AK \ AS \ ConverterModule \ output \ AddIns \ CompositeFileZip \ 7z.dll Nome del file: D: \ AK \ AS \ ConverterModule \ output \ AddIns \ Composi ...
Il 7z.dll non è il componente aggiuntivo di montaggio, ma il file 7z che gli usi Addin CompositeFileZip. Non riesco a capire che cosa esattamente la funzione di ricostruire sta facendo. Sta cercando di aggiungere il 7z.dll come un componente aggiuntivo?
Soluzione
Non ho dimestichezza con System.AddIn o il componente di 7z, ma una causa molto comune di BadImageFormatException
sta tentando di caricare un assembly che è contrassegnato come 64-bit (o dipendente da una nativa a 64 bit dll) su un sistema a 32 bit, o viceversa.
Verificare se il vostro 7z.dll
e le sue dipendenze sono costruiti per la stessa architettura del sistema in cui si vede il BadImageFormatException
. È possibile farlo da un comando di Visual Studio pronta allo scarico di rifiuti per le intestazioni 7z.dll
e cercando l'architettura della macchina:
C:\Program Files\7-Zip>dumpbin /headers 7z.dll | findstr /i machine 8664 machine (x64)