编译时的冲突警告
Conflict warning while compiling
我在编译时收到警告。我通过 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] 的引用。
\packages\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,版本=4.121.1.0,文化=中性,PublicKeyToken=89b483f429c47342,processorArchitecture=MSIL
依赖于 "Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" [c:\oracle\product.1.0\OraClient12_home1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll] 的引用。
Common.dll
项目文件项包括导致引用 "Common.dll"。
常见的
C:\Program Files (x86)\MSBuild.0\bin\Microsoft.Common.CurrentVersion.targets(1697,3):警告 MSB3277:发现同一依赖程序集的不同版本之间存在无法解决的冲突。当日志详细程度设置为详细时,这些引用冲突会在构建日志中列出。
您将其安装为 nuget 包,但它也存在于 c:\oracle\product.1.0\oraclient12_home1\odp.net\managed\common..
所以可能发生的事情是这样的。您最初引用的是安装在磁盘上的 ODP.Net(可能与 oracle 一起安装)。然后你使用 nuget 包升级。这意味着它将在本地项目的 bin 文件夹中,不再依赖于独立安装。
因为您已经在 c: 上引用了那个 dll...Nuget 没有更新引用。
要修复,请删除项目引用中 ODP.Net 的所有引用,卸载 nuget 包,删除包文件夹,然后重新安装 oracle 包,然后它应该选择正确的引用。
我的错。我指的是 ODP.Net 的旧版本,并在我的 web.config 中使用了以下标签。如您所见,newVersion 设置为 4.121.2.0,而我使用的版本是 4.121.1.0。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<publisherPolicy apply="no"/>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral"/>
<bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.121.2.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
我在编译时收到警告。我通过 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] 的引用。 \packages\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,版本=4.121.1.0,文化=中性,PublicKeyToken=89b483f429c47342,processorArchitecture=MSIL 依赖于 "Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" [c:\oracle\product.1.0\OraClient12_home1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll] 的引用。 Common.dll 项目文件项包括导致引用 "Common.dll"。 常见的 C:\Program Files (x86)\MSBuild.0\bin\Microsoft.Common.CurrentVersion.targets(1697,3):警告 MSB3277:发现同一依赖程序集的不同版本之间存在无法解决的冲突。当日志详细程度设置为详细时,这些引用冲突会在构建日志中列出。
您将其安装为 nuget 包,但它也存在于 c:\oracle\product.1.0\oraclient12_home1\odp.net\managed\common..
所以可能发生的事情是这样的。您最初引用的是安装在磁盘上的 ODP.Net(可能与 oracle 一起安装)。然后你使用 nuget 包升级。这意味着它将在本地项目的 bin 文件夹中,不再依赖于独立安装。
因为您已经在 c: 上引用了那个 dll...Nuget 没有更新引用。
要修复,请删除项目引用中 ODP.Net 的所有引用,卸载 nuget 包,删除包文件夹,然后重新安装 oracle 包,然后它应该选择正确的引用。
我的错。我指的是 ODP.Net 的旧版本,并在我的 web.config 中使用了以下标签。如您所见,newVersion 设置为 4.121.2.0,而我使用的版本是 4.121.1.0。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<publisherPolicy apply="no"/>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral"/>
<bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.121.2.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>