ODP.NET x64 ANYCPU和首选32位设置

时间:2013-02-23 08:45:27

标签: odp.net anycpu

我的机器安装了最新的Oracle ODP.NET x64(xCopy版本)。我的机器是x64。我不知道目标机器是x86还是x64,所以我在VS 2012中将构建属性设置为AnyCPU。有一个默认复选框激活“prefer 32-bit”

编译没问题但是当我运行代码时它说它无法找到程序集。取消选中“prefer 32-bit”可以解决这个问题。

但是造成这种情况的原因是什么?我认为更喜欢32位是可以的,但如果这是唯一的选择,它将使用x64。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

带有“首选32位”的“任何CPU”将在64位计算机上作为32位进程运行。并且因为32位进程无法加载64位ODP.NET程序集(以及本机DLL),它会引发您提到的异常。

您可以在此处详细了解“首选32位”设置:https://stackoverflow.com/a/12066861/631802