我的情况如下(Win7、VS2010、.NET 4.0):
我有一个外部公司为“任何 CPU”编译的 .NET 程序集(使用 corflags.exe 验证)。该程序集也从外部公司加载本机 dll。这个原生 dll 有两个版本 - x86 和 x64。我两个都有。
当我创建控制台应用程序时,添加 .NET 程序集(同时确保 .NET 程序集可以找到本机 DLL 之一),从该 .NET 库中创建一个类的实例并启动程序一切都是美好的。
但是,当我在 WCF 服务中执行完全相同的步骤时,我得到了 BadImageFormatException。现在显而易见的是在目标平台中搜索错误(我尝试了“Any CPU”、“x86”、“x64”)或尝试交换本机 DLL(我尝试了 x86 和 x64),但这无济于事. 顺便说一句,我尝试了所有组合...
有谁知道问题可能是什么?
拉斯
PS:我阅读了 WcfSvcHost 和 IIS WCF 主机遇到的 BadImageFormatException,正如作者所说,他通过将 WcfSvcHost.exe 标记为 32BIT 解决了类似的问题,但 WcfSvcHost.exe 的名称很强,所以我不能辞职。不知道他是如何让它工作的......