.NET 4.0引用错误的Oracle.DataAccess.dll

时间:2015-04-07 14:06:54

标签: c# .net oracle cruisecontrol.net

当我使用CruiseControl.NET Build Server构建我的C#应用​​程序时,它总是引用错误的Oracle.DataAccess.dll。在我的本地机器上它没有任何问题。

我的本​​地计算机和构建服务器都是Windows 7计算机。我在两台机器上安装了Oracle Client 11.2.0.3(32位和64位)。 我的应用程序是.NET Framework 4.0 C#应用程序。我将OracleDataAccess.dll的特定版本和本地副本设置为false。

当我在本地机器上构建它时,一切正常。 我使用IL-Disassembler分析了文件,这里的引用是好的:

.assembly extern Oracle.DataAccess
{
  .publickeytoken = (89 B4 83 F4 29 C4 73 42 )                         // ....).sB
  .ver 4:112:3:0
}

当我在构建服务器上构建它时,我的应用程序引用了错误的OracleDataAccess.dll。 在这里我得到了这个参考:

.assembly extern Oracle.DataAccess
{
  .publickeytoken = (89 B4 83 F4 29 C4 73 42 )                         // ....).sB
  .ver 2:112:3:0
}

项目中的所有引用都指向4 ...版本。我重新安装了32位和64位oracle客户端。我检查了构建服务器上的所有oracle引用,一切看起来都很好。在试图找到错误的一整天后我不知道如何继续。拜托,有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

*.csproj编辑您对ODP.NET的引用,如下所示:

    <Reference Include="Oracle.DataAccess">
      <SpecificVersion>False</SpecificVersion>
      <Private>False</Private>
    </Reference>

不需要Version=...processorArchitecture=...等属性。您的应用程序将加载正确的Oracle.DataAccess.dll,具体取决于所选的体系结构和目标.NET框架(前提是它已正确安装)