在64位计算机上以32位模式运行Oracle客户端

时间:2013-05-14 08:38:10

标签: c# oracle visual-studio visual-studio-2008 32bit-64bit

我刚刚从32位Windows 7桌面迁移到64位Windows 7笔记本电脑。我们正在开发一个包含解决方案中大约60个项目的C#程序。我在尝试构建时遇到以下错误:

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed

显然,错误是非常自我解释的,我试图让我的整个解决方案以32位模式加载。我已经完成了每个项目,并将目标平台设置为x86,但我仍然遇到此错误。我搜索过谷歌并看到了无数不同的方法,但我似乎无法解决这个问题。确保我的项目在64位计算机上以32位模式运行的最佳方法是什么?

我正在使用Visual Studio 2008.我目前正在考虑降级到32位,但我真的想避免这样做。

5 个答案:

答案 0 :(得分:11)

我发现即使您在64位计算机上运行,​​也必须安装32位Oracle客户端(您可以从他们的网站download the installer安装)。

此外,在讨论期间,人们讨论的是32位模式等。这是您可以检查/设置IIS 7托管应用程序的方法。您不需要更改此内容,但我已添加此处以供完整性/将来参考。

  • 启动IIS 7并展开服务器名称节点。
  • 点击应用程序池节点,然后找到 您正在使用的应用程序池。
  • 在右侧面板上,点击高级设置...
  • 在显示的弹出框中,选中启用32位应用程序设置,这是从顶部开始的第三个选项。

答案 1 :(得分:5)

您必须将主.exe文件更改为仅以32位运行。您可以在Visual Studio中执行此操作 - 只需将平台目标从“任何CPU”更改为“x86”。

如果无法做到这一点,请使用corflags.exe强制现有的exe为32位应用程序。

答案 2 :(得分:2)

我几个月来一直在努力解决这个问题,最后解决了这个问题。我认为所有帖子都有帮助,但我有一个缺失的部分。我没有用于用户DSN或系统DSN的Oracle ODBC实例设置的Microsoft ODBC。我正在使用Windows 8计算机。所以对我来说,我不得不去一般的Windows搜索并输入ODBC并打开ODBC数据源管理器(32位)。检查用户DSN选项卡或系统DSN选项卡上是否有Microsoft ODBC for Oracle设置。如果没有,请单击“添加”,然后选择“Microsoft ODBC for Oracle”。填写您要点击的数据源的信息,然后单击“确定”。确保重新启动计算机,这最终对我有用。希望这有助于你们中的一些人。

答案 3 :(得分:0)

在我的情况下,我的机器上安装了64位Oracle客户端,但仍然出现同样的错误。所以,我已经分析了在我的应用程序中转到应用程序右键单击转到 - >属性 - > Web选项卡 如果您使用的是本地IIS Web服务器,请取消选中“使用IIS Express”选项。 问题解决了。

答案 4 :(得分:0)

您必须将主.exe文件更改为仅以32位运行。您可以在Visual Studio中执行此操作 - 只需从"任何CPU"更改平台目标。到" x86"。 https://msdn.microsoft.com/en-us/library/ms185328.aspx