2015-10-08 101 views
0

我在編譯時遇到警告。我通過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:發現無法解析的相同相關程序集的不同版本之間的衝突。當日志詳細程度設置爲詳細時,這些引用衝突會在構建日誌中列出。

回答

0

我的不好。我指的是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> 
0

你安裝它作爲一個NuGet包,但它也存在於C:\ ORACLE \產品\ 12.1.0 \ oraclient12_home1 \ odp.net \管理\共同..

那麼,什麼可能發生的事情是這樣的。您最初引用了安裝在磁盤上的ODP.Net(可能與Oracle一起安裝)。然後你使用nuget包進行升級。這意味着它將在您的項目的bin文件夾中本地化,不再依賴於獨立安裝。

因爲你已經對c:上的該dll有一個引用:... Nuget沒有更新引用。

要解決此問題,請刪除項目參考中的所有引用ODP.Net,卸載nuget軟件包,刪除軟件包文件夾,然後重新安裝Oracle軟件包,然後在其中選擇正確的引用。