System.BadImageFormatException:如何修复.NET版本不匹配?

发布于 2024-07-20 06:55:01 字数 217 浏览 10 评论 0原文

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

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

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

I wrote a dll in VS 2005 that will be loaded by another program that was developed in VS 2003. When that program tries to load my dll, it throws a System.BadImageFormatException: The format of the file 'Foo.dll' is invalid.

I searched SO and Google, and it seems that the different version of .NET is the culprit. My question is: How do I fix this?

(I cannot modify the program developed in VS 2003.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

零時差 2024-07-27 06:55:01

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

I got this error when I was running the 64bit version of the CLR and trying to load an assembly that was marked 32bit only. The specific assembly in my case was the Oracle.DataAccess.dll that comes as part of ODP.NET.

何时共饮酒 2024-07-27 06:55:01

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

SOLUTION: If you are on IIS7, Right Click/ Advanced Settings on the Specific Application Pool of the website and select True on Enable 32-Bit Applications. It should work.

栀梦 2024-07-27 06:55:01

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

Compile the VS2005 Project with the same .Net Version as your VS2003 Project uses.
Or, depending of the size of your VS2003 Project, reflector and rewrite it. That's common practice for projects over here, where for some obscure reason there is no more VSS version available.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文