我的机器安装了最新的 Oracle ODP.NET x64(xCopy 版本)。我的机器是x64。我不知道目标机器是 x86 还是 x64,所以我在 VS 2012 中将构建属性设置为 AnyCPU。有一个默认复选框处于活动状态“首选 32 位”
编译没问题,但是当我运行代码时它说找不到程序集。取消选中“首选 32 位”可以解决此问题。
但这是什么原因造成的?我认为首选 32 位是可以的,但如果这是唯一的选择,它将使用 x64。
有任何想法吗?
带有“首选 32 位”的“任何 CPU”将在 64 位机器上作为 32 位进程运行。而且由于 32 位进程无法加载 64 位 ODP.NET 程序集(以及本机 DLL),它会引发您提到的异常。
您可以在此处阅读有关“首选 32 位”设置的更多信息:https ://stackoverflow.com/a/12066861/631802