编译时出现冲突警告
我在编译时遇到警告。我通过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,版本= 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,Version = 4.121.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342,processorArchitecture = MSIL 引用依赖于“Oracle.ManagedDataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”[c:\ ORACLE \产品\ 12.1.0 \ OraClient12_home1 \ ODP.NET \管理\共同\ Oracle.ManagedDataAccess.dll]。 Common.dll 项目文件项包括引起“Common.dll”的引用。 Common C:\ Program Files文件(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1697.3):警告MSB3277:发现无法解析的相同相关程序集的不同版本之间的冲突。当日志详细程度设置为详细时,这些引用冲突会在构建日志中列出。
我的不好。我指的是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包,但它也存在于C:\ ORACLE \产品\ 12.1.0 \ oraclient12_home1 \ odp.net \管理\共同..
那么,什么可能发生的事情是这样的。您最初引用了安装在磁盘上的ODP.Net(可能与Oracle一起安装)。然后你使用nuget包进行升级。这意味着它将在您的项目的bin文件夹中本地化,不再依赖于独立安装。
因为你已经对c:上的该dll有一个引用:... Nuget没有更新引用。
要解决此问题,请删除项目参考中的所有引用ODP.Net,卸载nuget软件包,删除软件包文件夹,然后重新安装Oracle软件包,然后在其中选择正确的引用。