我刚刚从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位,但我真的想避免这样做。
答案 0 :(得分:11)
我发现即使您在64位计算机上运行,也必须安装32位Oracle客户端(您可以从他们的网站download the installer安装)。
此外,在讨论期间,人们讨论的是32位模式等。这是您可以检查/设置IIS 7托管应用程序的方法。您不需要更改此内容,但我已添加此处以供完整性/将来参考。
答案 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