无法在 NUnit 测试项目上加载 Oracle.DataAccess dll(System.BadImageFormatException:无法加载文件或程序集)但应用程序运行正常

Cannot load Oracle.DataAccess dll on NUnit Test project (System.BadImageFormatException : Could not load file or assembly) but app runs fine

我有一个使用 Oracle.DataAccess 和 运行 访问 oracle 数据库的应用程序就好了。

当我在我的测试项目和 运行 测试中引用相同的 dll 时,问题就来了。

命中数据库的集成测试失败 运行,但出现以下异常:

"Message: System.BadImageFormatException : Could not load file or assembly 'Oracle.DataAccess, Version=2.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was made to load a program with an incorrect format."

NUnit 运行ner 是否有问题?

如果是这样,我不知道要采取什么步骤才能运行正确。

提前致谢

每次我遇到这个错误都是因为没有将入口点 DLL 设置为构建 32/64 位。如果您使用的是 32 位 Oracle.DataAccess DLL,请确保您的测试项目也在 32 位模式下设置为 运行。

(还要确保您 运行 测试的机器安装了正确的 Oracle 客户端:32 位或 64 位)。

不要忘记为所有解决方案配置(调试、发布等)正确配置平台:

子孙后代:

测试可以 运行 在 x86 或 x64 中。

可以在这里切换:

如果您的应用程序使用 x86 oracle,则将测试保留在 x86 中。 如果您的应用程序使用 x64 oracle,则将测试处理器架构切换为 x64。

让我得到答案的是这个应用程序工作得很好,但是当 运行 进行测试时,他们 运行 失败了。因此问这个问题 "wait, in what context does the test code run" 帮助我找到了这个。

感谢之前评论和回答的支持。这就是我要找的回复。