我正在使用 Visual Studio 2008 在 Windows 7 64 位中进行开发。我有一组类库,我使用 ILMerge 将它们合并到一个 DLL 中。但是,当我尝试使用这个合并的 DLL 时,我得到了
[ BadImageFormatException : 无法加载文件或程序集“MyMergedDll”或其依赖项之一。试图加载格式不正确的程序。]
我一直在四处寻找帮助,看起来我需要在 MyMergedDll 中的每个项目中将 Build 属性设置为以 x86 为目标,所以我这样做了。我还在 Web 服务中设置了所有非 MSTest 项目,其中我将 MyMergedDll 引用为目标 x86。但是,我仍然收到此错误。
如果可以相信此博客条目,我会因为执行以下操作而收到此错误:
public class SpecificClass: BaseClass: where T : class { }
也就是说,对泛型具有类约束。不过,博客条目是 2007 年的,所以我不知道这是否仍然适用。在我追踪项目中的每个泛型类以检查约束之前,我想从 StackOverflow 获得一些关于你们认为问题所在的信息。
如果重要,MyMergedDll 是强名称签名的。我正在尝试在控制台应用程序和 Web 服务中使用 MyMergedDll。我不知道每次重建 Web 服务时 IIS 是否都在更新,这是否会使事情变得复杂。使用控制台应用程序,我似乎只BadImageFormatException
在以发布模式构建时才得到。