2015-08-24 81 views
1

How to fix "No way to resolve conflict between" error?,當我的項目建立有一個錯誤說:如何解決「沒有辦法來解決衝突」的錯誤時,有項目中沒有參考?

5> No way to resolve conflict between "Oracle.DataAccess, Version=4.112.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342" and "Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342". Choosing "Oracle.DataAccess, Version=4.112.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342" arbitrarily. 
5> Consider app.config remapping of assembly "Oracle.DataAccess, Culture=neutral, PublicKeyToken=89b483f429c47342" from Version "4.112.1.2" [] to Version "4.112.4.0" [C:\Oracle\11.2\Client_x64\odp.net\bin\4\Oracle.DataAccess.dll] to solve conflict and get rid of warning. 

的問題是,違背所有其他問題的話,我有我的項目中沒有提及Oracle.DataAccess!

我還列出了我的nugets的所有依賴關係,並沒有直接引用Oracle.DataAccess。

的subtelty是,我有一個需要Oracle.DataAccess 4.112.2.1編譯的NuGet但我從來沒有包裝它,因爲它必須在GAC通過Oracle客戶端安裝上找到。

編輯:請注意,我不想修改app.config,因爲有很多應用程序,它們將被部署到具有不同Oracle安裝的服務器(即,我不想在每次部署一個應用程序時重寫assemblyBinding應用程序服務器)

回答

1

嘗試添加以下到您的app.config文件:

<configuration> 
 
    <runtime> 
 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
 
     <dependentAssembly> 
 
     <assemblyIdentity name="Oracle.DataAccess" 
 
      publicKeyToken="89b483f429c47342" 
 
      culture="neutral" /> 
 
     <bindingRedirect oldVersion="4.112.1.2" newVersion="4.112.4.0" /> 
 
     </dependentAssembly> 
 
    </assemblyBinding> 
 
    </runtime> 
 
</configuration>

+0

我知道這會在編譯過程中解決的警告,但是當我將視洛伊到我的服務器,有Oracle客戶端的另一個版本,我需要改變它(我有一個像100的應用程序部署到多個服務器使用不同的Oracle客戶端安裝...)。這會造成問題嗎? –

+0

部署到生產時使用轉換。 https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5 https://visualstudiogallery.msdn.microsoft.com/7bc82ddf-e51b-4bb4-942f-d76526a922a0 –

相關問題