我有一些来自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添加为插件?
答案 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)