获取BadImageFormatException

时间:2011-03-17 13:40:23

标签: c# system.addin

我有一些来自System.AddIn的插件。但是在运行AddInStore.Rebuild时,

string[] warnings = AddInStore.Rebuild(addInRoot);

然后我收到一个警告字符串:

  

该文件不是有效的二进制文件:   d:\ AK \ AS \ ConverterModule \输出\加载项\ CompositeFileZip \ 7z.dll   文件名:   d:\ AK \ AS \ ConverterModule \输出\加载项\ COMPOSI ...

7z.dll不是插件程序集,而是CompositeFileZip插件使用的7z文件。我无法弄清楚重建功能到底在做什么。它是否尝试将7z.dll添加为插件?

1 个答案:

答案 0 :(得分:5)

我不熟悉System.AddIn或7z组件,但BadImageFormatException的一个非常常见的原因是尝试加载标记为64位的程序集(或依赖于本机64位.dll)在32位系统上,反之亦然。

检查您的7z.dll及其依赖项是否构建为与您看到BadImageFormatException的系统相同的体系结构。您可以通过转储7z.dll的标头并查找计算机体系结构,从Visual Studio命令提示符执行此操作:

    C:\Program Files\7-Zip>dumpbin /headers 7z.dll | findstr /i machine
            8664 machine (x64)