首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法在.NET中加载Oracle.DataAccess的文件或程序集

无法在.NET中加载Oracle.DataAccess的文件或程序集
EN

Stack Overflow用户
提问于 2009-12-24 00:08:05
回答 12查看 130.5K关注 0票数 28

当我尝试运行一个简单的程序来访问oracle时,我得到了以下消息

无法加载文件或程序集“Oracle.DataAccess,Version=2.111.7.20,Culture=neutral,PublicKeyToken=89b483f429c47342”或其依赖项之一。系统找不到指定的文件。

我检查了\windows\assembly,它在那里,但不在GAC (gacutil -l)中。我不能添加到GAC (gacutil -i [path]。我收到“未知错误”。

有没有人有过同样的经历?

EN

回答 12

Stack Overflow用户

发布于 2010-02-24 07:46:02

我将从我刚刚在Windows Server2008 R2上经历的64位操作系统上给出答案。我得到的库的应用程序套件是使用Oracle3.5DLL库和较旧的.net库开发的,我被困住了,因为我安装了来自oracle的较新的x64客户端。

我发现的结果如下:安装Oracle for Windows Server2008的最新x64客户端。我相信这应该是2.7.0客户端。当您选择安装时,请确保执行自定义并选择.NET库。配置您的tnsnames文件,并根据您的数据源测试您的tnsping。

接下来,如果您运行的是32位应用程序,请为32位安装相同版本的客户端。此外,请遵循相同的安装例程,并选择相同的主目录。

完成后,您将发现您有一个具有两个客户端目录(Client1和Client2)的应用程序/产品。

如果您导航到windows/assemblies目录,您会发现您有一个对Oracle.DataAccess.dll (x2)的引用,一个用于x86,一个用于AMD64。

现在,取决于你是有开发人员还是自己在机器上开发,你在这里可能是可以的,但是,如果他们使用的是旧的驱动程序,那么你需要执行最后一步。

导航到app\name\product\version\client_1\odp.net\publisher policy\2.x目录。此处包含两个策略文件。使用gacutil /i将Policy.2.111.Oracle.DataAccess.dll安装到GAC中。这会将遗留oracle ODP调用重定向到较新的版本。因此,如果有人使用10g客户端进行开发,它现在将与11客户端一起工作。

仅供参考-某些用户可能正在安装带有2.111.7.20的最新ODP.NET。主oracle客户端本身附带2.111.7.0.我使用7.20没有任何成功,但7.0客户端没有任何问题。

票数 24
EN

Stack Overflow用户

发布于 2010-11-17 06:21:49

我是用x64编译的,用x86就可以解决问题

票数 7
EN

Stack Overflow用户

发布于 2011-09-26 16:12:54

正如在第一个答案中提到的,有32/64位的场景为开发人员引入了构建和运行时陷阱。

解决方案总是尝试正确的:你安装了什么样的软件和操作系统,

有关Oracle驱动程序和解决方案的一小部分场景列表,您可以访问此post

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1953676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档