我在VS 2005中编写了一个dll,它将由另一个在VS 2003中开发的程序加载。当该程序试图加载我的dll时,它会抛出一个 System.BadImageFormatException:文件格式'Foo .dll'无效

我搜索了SO和Google,似乎不同版本的.NET是罪魁祸首。我的问题是:我该如何解决这个问题?

(我无法修改VS 2003中开发的程序。)

有帮助吗?

解决方案

使用与VS2003项目使用的相同.Net版本编译VS2005项目。 或者,根据VS2003项目的大小,反射器并重写它。对于这里的项目来说,这是常见的做法,由于某些不明原因,不再有VSS版本。

其他提示

当我运行64位版本的CLR并尝试加载仅标记为32位的程序集时,我收到此错误。在我的案例中,特定的程序集是Oracle.DataAccess.dll,它是ODP.NET的一部分。

解决方案:如果您使用的是网站特定应用程序池上的IIS7,右键单击/高级设置,请在启用32位应用程序时选择True。它应该工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top