Chr*_*ris 28 .net oracle assemblies
当我尝试运行一个简单的程序来访问oracle时,我收到了这条消息
无法加载文件或程序集'Oracle.DataAccess,Version = 2.111.7.20,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其依赖项之一.该系统找不到指定的文件.
我检查了\ windows\assembly它在那里,但它不在GAC(gacutil -l)中.我无法添加到GAC中(gacutil -i [path]我得到'未知错误'.
任何人都有同样的体验?
小智 24
我将在Windows Server 2008 R2(64位操作系统)上为您提供答案.我给出的库应用程序套件是使用.net 3.5 x86与较旧的DLL库开发的,因为我从oracle安装了较新的x64客户端而被卡住了.
我发现如下:从Oracle for Windows Server 2008安装最新的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客户端没有问题.
我正在使用x64进行编译,只需使用x86即可解决问题