跟踪导致BadImageFormatException的DLL

本文关键字:DLL BadImageFormatException 跟踪 | 更新日期: 2023-09-27 17:59:09

我们的软件有一个服务器组件,它公开了几个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?如有任何其他建议或意见,我们将不胜感激。

谢谢大家!Andrew S

跟踪导致BadImageFormatException的DLL

如果您正在动态生成DLL,请尝试离开Program Files文件夹。在根驱动器C:'上创建一个文件夹,然后在那里安装软件。