我已经编写了一个连接到Oracle11g数据库的.NET 4 NT服务,现在我希望进行部署。
目标计算机安装了Oracle驱动程序,但仅用于ODP v2。(我假设;ODP.NET\Bin中只有一个2.x文件夹)
没有升级路径;公司包不包括我正在寻找的内容,我对那些标准构建中应该包含的内容也没有发言权。
另一方面,我可以安装下载的驱动程序.
目标已经使用安装的驱动程序运行了3个应用程序。这是他们继续不受干扰地这样做的一项要求。
因此,在安装了2组Oracle驱动程序之后,如何确保我的新应用程序在保留旧集“主”集的同时使用新集?
发布于 2013-10-31 17:26:40
我假设两个安装程序都将ODP程序集放置在GAC中。如果是这样,您可以强制使用特定版本。
确保您在.csproj文件中对要使用的ODP版本进行了完全限定的引用。我不知道您需要的程序集的具体内容,但是这里有一个例子,说明在csproj文件中引用应该是什么样子。确保它是完全合格的(有名称,版本,文化,公开密钥,架构)。而且SpecificVersion是真的。
<Reference Include="ODP..., Version=4.x.x.x, Culture=neutral, PublicKeyToken=theKey, processorArchitecture=...">
<HintPath>..\..\..\lib\ODP\ODP.dll</HintPath>
<SpecificVersion>True</SpecificVersion>
</Reference>编译后,这将在编译代码中引用特定版本。在运行时,程序集加载程序将查找您请求的版本。使用融合日志查看器跟踪是否正按预期发生这种情况。否则,可以以各种方式实现程序集绑定重定向。
如果您需要走这条路线,请查看这些链接:
重定向程序集版本
运行时如何定位程序集
发布于 2013-10-31 17:19:50
您需要查看并行部署,正如Oracle的技术网络所概述的那样。
如果这是不可能做到的,由于某种原因,您将不得不考虑隔离应用程序或其他解决方案。
https://stackoverflow.com/questions/19712696
复制相似问题