程序集使用版本X,其版本高于引用的程序集错误

Fel*_*lix 12 c# conflicting-libraries asp.net-core asp.net-core-2.0

从ASP.NET Core 2.0升级到2.1-preview2后,我收到以下错误:

Error   CS1705  Assembly 'System.Data.SqlClient' with identity 'System.Data.SqlClient, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' uses 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
Run Code Online (Sandbox Code Playgroud)

当我四处寻找类似的错误时,我看到很多关于csproj或json文件中引用的版本的讨论(取决于讨论的年龄).但在.NET Core中只有一个引用Microsoft.AspNetCore.App.所以,我没有办法操纵任何一个System.Data.SqlClient或的引用System.Runtime

另一个观察结果,虽然大多数错误引用实际代码,例如connection.Open()有两个对不存在的文件CSC第1行的引用.

更新:如果我创建一个新项目并在那里复制有问题的代码,我没有收到任何错误.所以,显然对不匹配版本的引用是在项目的某个地方...但我无法弄清楚在哪里!

Mar*_*rko 8

有同样的问题.通过在.csproj文件中找到RuntimeFrameworkVersion标记并将其值更改为2.1来解决此问题.

  • 我也有同样的问题,但原因不同。我错误地将针对 dotnet core 2.1 的库“Z”包含在针对 dotnet 标准 2.0 的库“Y”中,该库包含在针对 dotnet core 2.1 的最终应用程序“X”中。编译器真的不喜欢这样,但错误消息很神秘,(与原始问题相同)。将 ZYX 链中的“中间”库重构为 dotnet core 2.1 修复了它。我意识到这听起来很明显,但我得到了 Z 和 Y,他们都自己工作。您的问题只有一个库,我将其发布给可能有此问题的其他人 (3认同)