Obtener un badimageFormateException
-
27-10-2019 - |
Pregunta
Tengo algunos sujetos del sistema.Addin. Pero al ejecutar addinstore.rebuild,
string[] warnings = AddInStore.Rebuild(addInRoot);
Luego recupero una cuerda de advertencia:
El archivo no es un binario válido: d: ak as convertermodule output addins compositeFilezip 7z.dll Nombre del archivo: D: ak as converterModule output addins composi ...
El 7Z.DLL no es el ensamblaje adicional, sino el archivo 7Z que usa el complemento compuesto para la terminación. No puedo averiguar qué está haciendo exactamente la función de reconstrucción. ¿Está tratando de agregar el 7z.dll como un complemento?
Solución
No estoy familiarizado con System.Addin o el componente 7Z, pero una causa muy común de BadImageFormatException
intenta cargar un ensamblaje marcado como 64 bits (o depende de un .dll nativo de 64 bits) en un sistema de 32 bits, o viceversa.
Compruebe si su 7z.dll
y sus dependencias están construidas para la misma arquitectura que el sistema donde ves el BadImageFormatException
. Puede hacer esto desde un símbolo del sistema Visual Studio tirando los encabezados para 7z.dll
y buscando la arquitectura de la máquina:
C:\Program Files\7-Zip>dumpbin /headers 7z.dll | findstr /i machine 8664 machine (x64)