编译

时间:2015-10-08 02:04:03

标签: c# visual-studio-2013 console-application odp.net

我在编译时遇到警告。我通过Nuget添加了最新的ODP.Net,并在我的解决方案中启用了Nuget Restore。当我在网上搜索时,有人建议从machine.config中删除这些部分。我做了但没有解决问题。任何帮助表示赞赏。我知道这是一个警告。但只是想知道问题所在。

“Oracle.ManagedDataAccess,Version = 4.121.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”和“Oracle.ManagedDataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”之间存在冲突。      选择“Oracle.ManagedDataAccess,Version = 4.121.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”,因为它是主要的,而“Oracle.ManagedDataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”不是。      依赖于“Oracle.ManagedDataAccess,Version = 4.121.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”[\ packages \ odp.net.managed.121.1.2 \ lib \ net40 \ Oracle.ManagedDataAccess.dll]的引用。          \包\ odp.net.managed.121.1.2 \ LIB \ net40 \ Oracle.ManagedDataAccess.dll            项目文件项包括导致引用“\ packages \ odp.net.managed.121.1.2 \ lib \ net40 \ Oracle.ManagedDataAccess.dll”。              Oracle.ManagedDataAccess,Version = 4.121.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342,processorArchitecture = MSIL      依赖于“Oracle.ManagedDataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”[c:\ oracle \ product \ 12.1.0 \ OraClient12_home1 \ ODP.NET \ managed \ common \ Oracle.ManagedDataAccess.dll的引用]。          Common.dll            项目文件项包括导致引用“Common.dll”的项目。              共同 C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1697,3):警告MSB3277:发现无法解析的相同从属程序集的不同版本之间发生冲突。当日志详细程度设置为详细信息时,这些引用冲突将在构建日志中列出。

1 个答案:

答案 0 :(得分:0)

您将其安装为nuget包,但它也存在于c:\ oracle \ product \ 12.1.0 \ oraclient12_home1 \ odp.net \ managed \ common ..

所以可能发生的是这个。您最初引用的是安装在磁盘上的ODP.Net(可能与oracle一起安装)。然后使用nuget包升级。这意味着它将在您项目的bin文件夹中本地,不再依赖于独立安装。

因为你已经在c上引用了那个dll ... ... Nuget没有更新引用。

要解决此问题,请删除项目参考中的所有ODP.Net参考,卸载nuget包,删除您的packages文件夹,然后重新安装oracle软件包,然后选择正确的参考文件。