我已经使用 Oracle 提供的 XCopy 11.2 安装了 64 位计算机的 Oracle 客户端(按照自述说明安装了所有内容)。
我正在使用 Visual Studio 2010,该项目的类型为 ASP.NET 网站。
当我尝试使用上面安装的 Oracle Connection 执行 ASP.NET 网站时,它在编译期间从 web.config 文件中给出了错误。
**
“无法加载文件或程序集
'Oracle.DataAccess,版本=4.112.2.0,
文化=中立,
PublicKeyToken=89b483f429c47342' 或
它的依赖项之一。系统
找不到指定的文件”
**
如果我在 IIS 应用程序池中将启用 32 位应用程序的值更改为 True,它就会起作用。
但我的要求是使其在具有 64 位 ODP.NET 连接器的 64 位计算机上工作,因此我不想将启用 32 位应用程序的值更改为 True。
因此,如果您能帮助我找到答案,我将不胜感激。请帮我修复上述错误。
处理此问题的最佳方法是在本地使用 Visual Studio 的 x86 版本,在服务器上使用 IIS 的 x64 版本。
为此,您必须下载两个版本 - 将一个版本复制到文件夹 lib\x86 中,将另一个版本复制到 lib\x64 中
之后,您必须修改项目文件 - Visual Studio 支持条件引用。将以下部分添加到您的项目文件中:
<PropertyGroup>
<ReferencesPath Condition=" '$(Platform)' == 'x86' ">..\Lib\x86</ReferencesPath>
<ReferencesPath Condition=" '$(Platform)' == 'x64' ">..\Lib\x64</ReferencesPath>
</PropertyGroup>
在此引用之后,odp.net 组件如下所示:
<Reference ... processorArchitecture=$(Platform)">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(ReferencesPath)\Oracle.DataAccess.dll</HintPath>
<Private>True</Private>
</Reference>
这样,当您可以在本地构建为 x86 并在服务器 x64 上构建时,始终会引用正确版本的 Oracle.DataAccess.dll。
或者,如果您只想使用 x64 版本,那么即使您在本地工作,也必须坚持使用 IIS,或者您可以尝试在 x64 模式下运行 Cassini 的开源版本 (http://cassinidev.codeplex.com)。
对我来说,最好的可能性是参考上述两个版本 - 这对我团队中的每个人来说都运行良好一段时间了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)