2017-06-14 51 views
1

我有一個.net 4.7項目,它安裝了System.Runtime的4.3.0版本。但是當我運行這個項目時,我得到一個異常,說它找不到版本4.1.0.0。我無法在.net 4.7項目中使用System.Runtime 4.3.0

如果我去nuget manager,我在項目中安裝了4.1.0.0版本,然後它就可以工作。所以我試圖再次更新到4.3.0版本,但我再次遇到問題。

該項目工作到現在爲止,我真的不知道爲什麼它停止工作,因爲我沒有碰到任何與nuget軟件包相關的東西。

此外,我試圖創建一個新的空解決方案,並添加項目,嘗試新的解決方案,但問題是一樣的。

我該如何解決問題?

謝謝。

+0

檢查任何與包相關的依賴項目的配置文件! –

+2

也許需要綁定重定向?你可以嘗試在一個新項目中重現它,並在github上共享它 – Dbl

+0

它是一個基於packages.config的項目還是在vs 2017 15.2中使用新的PackageReference樣式nuget包管理? –

回答

1

的NuGet應該生成必要的綁定重定向到App.configpackages.config基於項目或設置AutoGenerateBindingRedirectstrue使用PackageReference引用的NuGet包的csproj文件。

如果由於某種原因,這並沒有發生,或者你使用的庫從一個不同的項目/應用程序,可能需要手動添加綁定重定向到app.config/web.config文件:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+0

我試圖創建一個空的解決方案並創建項目,並將所有.cs和其他文件複製到這個新項目中。我再次安裝了我需要的nuget包裝,但問題是一樣的。我有一個.net 4.7應用程序,我試圖測試的程序集是.net standar 1.6。當我從.net標準的類運行一個方法時,我得到錯誤。錯誤是linq,我選擇的版本是4.1.0.0,而不是實際版本4.3.0,但問題是相同的。我沒有app.config。 –

+0

現在我的所有項目都是.net 4.7,而且仍然在測試項目中,我必須使用版本4.1.0而不是4.3.0。但我不知道在哪裏看到或如何設置我想要使用最新版本。也許可能是主要組件使用4.1.0?但是我創建了一個新的項目.net 4.7,只是複製.cs文件,沒有配置文件,所以我不知道爲什麼它應該使用4.1.0版本。 –

+0

你正在使用什麼樣的項目?你能上傳一個repro的地方嗎?是否手動添加綁定重定向到一個新的app.config解決了這個問題? –

相關問題