Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 跟踪导致BadImageFormatException的DLL_C#_.net - Fatal编程技术网

C# 跟踪导致BadImageFormatException的DLL

C# 跟踪导致BadImageFormatException的DLL,c#,.net,C#,.net,我们的软件有一个服务器组件,它公开了几个WCF端点。为了给用户一个“培训”模式,我们创建了一个动态DLL,将调用封装在每个服务接口中。然后将动态生成的DLL加载到单独的应用程序域中。然后,客户端应用程序可以在“训练”模式和“正常”模式之间切换,这会影响客户端用于通信的端点 我遇到的问题是,我从在子应用程序域中运行的动态生成的DLL中获取了一个BadImageFormatException。当我引用了我工作的公司中另一个团队制作的一些DLL时,这个问题就开始了,这向我表明这是导致问题的一个依赖DL

我们的软件有一个服务器组件,它公开了几个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

如果要动态生成DLL,请尝试离开
程序文件
文件夹。在您的根驱动器上创建一个文件夹
C:\
,并在那里安装软件。

如果您确定所有内容都是x86,是否有任何相关的DLL可能丢失。此错误将出现,而不是依赖项的DllNotFoundException,这使它非常混乱。感谢您的回复Pabinator。出于测试目的,我正在从我的开发目录运行软件。