Tim*_*yer 4 oracle odp.net visual-studio-2013 windows-8.1
我最近用Visual Studio 2013设置了一个Windows 8.1 64位机器(可能是32位,至少它安装在Program Files(x86)上).我还安装了Oracle 11.2.0.1 64位客户端和Oracle Data Provider for .NET.
当我做gacutil/l | findstr Oracle.DataAccess,我得到四个条目,包括以下内容:
Oracle.DataAccess, Version=2.112.1.0, ..., processorArchitecture=AMD64
Run Code Online (Sandbox Code Playgroud)
但是,在尝试添加程序集时,我无法在任何列表中找到Oracle.DataAccess(尽管如此,Oracle.Web存在于Assemblies-> Extensions下).
我必须安装32位Oracle客户端(或简称32位ODP.NET),因为Visual Studio是32位吗?如果是这样,软件是否能够在64位应用程序和64位Oracle客户端(64位ODP.NET)的64位系统上运行?
是的,Visual Studio是一个32位应用程序.
这取决于你的编译目标(x86或x64或AnyCPU)甲骨文你需要运行/从Visual Studio调试应用程序,无论是建筑的客户.
AnyCPU 将在64位Windows上运行为64位(最有可能的情况)
Oracle.DataAccess 没有出现,因为它是64位程序集,但您的Visual Studio是32位.
有几种解决方案:
在Add References使用该Browse部分并Oracle.DataAccess.dll手动定位.通常,你会发现它在文件夹%ORACLE_HOME%\odp.net\bin\2.x\或%ORACLE_HOME%\odp.net\bin\4\
打开你的*.csproj,相应的.*.vbproj使用文本编辑器文件并手动添加引用,即在元素下添加如下行<ItemGroup>:
<Reference Include="Oracle.DataAccess">
<SpecificVersion>False</SpecificVersion>
<Private>False</Private>
</Reference>
Run Code Online (Sandbox Code Playgroud)
注意:属性喜欢Version=...或processorArchitecture=...不需要.您的应用程序将加载正确的,Oracle.DataAccess.dll具体取决于所选的体系结构和目标.NET框架(前提是它已正确安装 - 也在您的目标计算机上)
在您的计算机上安装x86和x64 Oracle客户端.以下是如何执行此操作的说明:Stack Overflow - 安装Oracle x86和x64
使用Oracle的ODP.NET托管驱动程序.您可以从此处下载:64位Oracle数据访问组件(ODAC)下载这也适用于32位应用程序.
打开注册表编辑器并检查RegKey是否支持HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.NET.HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.NET存在.两个RegKeys仅包含(Default)您的位置值Oracle.DataAccess.dll.
例:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.Net]
@="c:\\oracle\\product\\11.2\\Client_x86\\odp.net\\bin\\2.x"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.Net]
@="c:\\oracle\\product\\11.2\\Client_x86\\odp.net\\bin\\4"
Run Code Online (Sandbox Code Playgroud)在编译选项中检查目标框架.安装ODP.NET版本4.x后,必须选择目标.NET Framework 4或更高版本才能在参考列表中查看ODP.NET条目.