我正在使用Visual Studio 2008在Windows 7 64位中开发。我有一个使用ILMerge合并到单个DLL中的类库集合。当我尝试使用此合并DLL,但是,我得到BadImageFormatException和.NET在Windows 7中ILMerged DLL 64
[BadImageFormatException:未能加载文件或程序集“MyMergedDll”或它的一个依赖。试图加载程序格式不正确。]
我一直在寻找周围帮助,这和它看起来像我需要设置生成属性在每个项目中MyMergedDll目标86,所以我做到了。我还在Web服务中设置了所有非MSTest项目,其中我将MyMergedDll引用为x86目标。但是,我仍然收到这个错误。
如果this blog entry是可以相信的,我能得到这个错误因为这样做的结果是:
public class SpecificClass: BaseClass: where T : class { }
也就是说,具有一个通用类约束。虽然这篇博客是从2007年开始的,但我不知道这是否仍然适用。我希望从StackOverflow获得一些输入,以了解你们认为问题出在我追踪我的项目中的每个泛型类以检查约束之前。
重要的是,MyMergedDll是强名字签名的。我试图在控制台应用程序和Web服务中使用MyMergedDll。我不知道是否每次重建Web服务时IIS是否更新都可能使事情变得复杂。使用控制台应用程序时,我似乎在构建发行模式时获得BadImageFormatException
。
您能否澄清一些观点: 1.运行ILMerge时或执行应用程序时是否出现错误? – 2010-07-19 16:36:12
单个项目DLL与ILMerge很好地融合在一起。控制台应用程序和使用合并DLL的Web服务可以正常工作。当我或者a)运行我的控制台应用程序或b)访问运行Web服务的Web服务器上的.asmx文件时,出现错误。 – 2010-07-19 16:44:49