"Could not load file or assembly 'Oracle.DataAccess'" 错误 Visual Studio 2019

"Could not load file or assembly 'Oracle.DataAccess'" Error in Visual Studio 2019

我刚刚安装了 VS 2019 并尝试从 VS 2019 中 运行 一个 .Net 应用程序并不断收到“无法加载文件或程序集 'Oracle.DataAccess' 或其依赖项之一。尝试是用于加载格式不正确的程序。"

相同的应用程序 运行 在 VS 2017 中运行良好,我似乎无法查明问题所在。 我检查了 VS 2017 和 2019 中的项目和构建属性,它们是相同的。我尝试注册 Oracle 数据访问 DLL 以确保它们出现在 GAC 中,即使对 DLL 的引用设置为项目的“bin”文件夹,也无济于事。

它不应该使用其引用中设置的 DLL(bin 文件夹中的 DLL)吗?是否有可能忽略它并尝试使用 GAC 中的内容?

如有任何关于下一步尝试的提示,我们将不胜感激。

这是我检查不同版本时看到的。

我同时安装了 32 位和 64 位。

E:\oracle\product.2.0\client_64>gacutil /l|findstr Oracle.DataAccess
Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Oracle.DataAccess, Version=2.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.102.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.111.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.112.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Oracle.DataAccess, Version=2.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Policy.2.102.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Policy.2.111.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Policy.2.112.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Oracle.DataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.4.112.Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Oracle.DataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86
Policy.4.112.Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86

由于我的所有项目都在 VS 2017 中运行并在 VS 2019 中停止运行,我认为这可能与 Oracle Data Access 版本无关,否则它也不会在 VS 2017 中运行。

解决方案是启用 64 位版本的 IIS express。一旦我这样做了,一切都很好。

在 Visual Studio 中,转到:

Tools
Options
Project and Solutions
Web Projects
Check the option: “Use the 64 bit version of IIS Express for web sites and projects”