我在我的asp.net项目中使用ODP.NET
,以便应用程序在Windows 2008服务器(32位)上与oracle 11 g Express对话。在开发机器上我有Windows 7(32位)。我在开发机器上安装了Windows 8(64位)并尝试从visual studio 2012运行该应用程序,它给出了错误“无法加载文件或程序集”Oracle.DataAccess''。经过一番搜索,我意识到我必须安装ODP.NET
(64位)才能在64位机器上使用它,所以我卸载了32位版本并安装了64位ODP.NET。删除了对旧Oracle.DataAccess
的引用,但仍面临同样的问题。我错过了什么吗?
答案 0 :(得分:2)
我有同样的问题,经过一些试验和错误,我发现问题是32位与64位平台。
希望这会有所帮助..
答案 1 :(得分:1)
要安装ODP.NET,我使用64bit ODAC
安装后,要检查Oracle.DataAccess 64位程序集是否已正确安装,请转到文件夹:c:\Windows\Microsoft.NET\assembly\GAC_64
并检查是否存在Oracle.DataAccess文件夹。
在该文件夹中应该有一个包含您正在使用的Oracle.DataAccess dll版本的子文件夹。
在Visual Studio中,您必须通过查看Assemblies-> Extensions(而不是使用Browse)来添加引用。 还要检查Visual Studio中的构建配置,以确保应用程序的活动解决方案平台为64位。
要运行您的网站,您必须使用IIS,因为visual studio的开发服务器仅以32位模式运行 在IIS应用程序池中,将应用程序设置为以64位运行。 (设置为高级设置)
答案 2 :(得分:0)
机器的位置无关紧要 - 托管应用程序的位置确实如此。 Visual Studio附带的开发Web服务器是32位,因此您需要安装32位版本的odp.net。如果要使用64位版本进行测试,可以在IIS中运行它。我安装两个。
在这种情况下,我猜这个问题更可能是版本号 - 您的应用程序最初引用的版本与您安装的版本不同。简单的做法是删除/重新添加对新安装的Oracle.DataAccess.dll的引用。但是,您必须这样做的事实表明您正在安装完整的客户端而不仅仅是ODP.net install。由于某种原因(除了oracle通用安装程序是一大块垃圾),完整的客户端不包括发布者策略(这将重定向引用),但odp.net安装确实如此。