C# 跟踪导致BadImageFormatException的DLL
我们的软件有一个服务器组件,它公开了几个WCF端点。为了给用户一个“培训”模式,我们创建了一个动态DLL,将调用封装在每个服务接口中。然后将动态生成的DLL加载到单独的应用程序域中。然后,客户端应用程序可以在“训练”模式和“正常”模式之间切换,这会影响客户端用于通信的端点 我遇到的问题是,我从在子应用程序域中运行的动态生成的DLL中获取了一个BadImageFormatException。当我引用了我工作的公司中另一个团队制作的一些DLL时,这个问题就开始了,这向我表明这是导致问题的一个依赖DLL。我已经确保两个解决方案中的每个项目都是使用x86标志构建的。有些DLL是.NET 2.0,有些是.NET 4.0,但应用程序本身在.NET 4.0 CLR下运行(在App.Config文件中设置),因此它与.NET 2.0 DLL没有问题。我感到困惑的是,运行在父应用程序域中的父可执行文件加载了所有引用的程序集,但一旦在子应用程序域中运行的生成的DLL尝试加载相同的程序集,就会出现BadImageFormatException 如果您能给我一些建议,告诉我如何准确跟踪哪个DLL导致了这个问题(因为Fusion日志似乎没有给我任何信息)。我是否需要设置标志以确保动态DLL和子应用程序域为32位和.NET 4?如有任何其他建议或意见,将不胜感激 谢谢大家!C# 跟踪导致BadImageFormatException的DLL,c#,.net,C#,.net,我们的软件有一个服务器组件,它公开了几个WCF端点。为了给用户一个“培训”模式,我们创建了一个动态DLL,将调用封装在每个服务接口中。然后将动态生成的DLL加载到单独的应用程序域中。然后,客户端应用程序可以在“训练”模式和“正常”模式之间切换,这会影响客户端用于通信的端点 我遇到的问题是,我从在子应用程序域中运行的动态生成的DLL中获取了一个BadImageFormatException。当我引用了我工作的公司中另一个团队制作的一些DLL时,这个问题就开始了,这向我表明这是导致问题的一个依赖DL
Andrew S如果要动态生成DLL,请尝试离开
程序文件
文件夹。在您的根驱动器上创建一个文件夹C:\
,并在那里安装软件。如果您确定所有内容都是x86,是否有任何相关的DLL可能丢失。此错误将出现,而不是依赖项的DllNotFoundException,这使它非常混乱。感谢您的回复Pabinator。出于测试目的,我正在从我的开发目录运行软件。