我搜索了很多但找不到解决我的问题的方法(我见过类似的运行时问题但没有构建)。
我有一个引用 .NET Core 项目/库的 .NET 4.7.1 项目(类库)。当我尝试构建时,出现以下构建错误:
'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
代码很简单,只是调用 .NET Core 库中的异步方法。有点像:
return _dotNetCoreClass.MethodAsync();
我已尝试升级项目,以便它使用 ProjectReferences 而不是 packages.config。我已经安装了 System.Runtime 包(版本 4.3.0)。我更新了我的项目文件以包含以下内容:
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
我还安装了最新的 NETStandard.Librabry 包,但我无法摆脱构建错误。
最佳答案
我认为发布我找到的解决方案并强调我的理解错误的地方很重要(感谢@jeroen-mostert 和@hans-passant 引导我朝着正确的方向前进)。
.NET 4.7.1 不支持所有 .NET Core 2.0 框架,因此我们使用的一些代码不受支持,因此在引用 .NET Core 库的应用程序中引发构建错误。
将 .NET Core 库更改为使用 .NET Standard 2.0(这很好,因为 .NET Standard 支持我们其他也将使用该库的 .NET Core 应用程序),然后删除并重新添加引用使用它的应用程序解决了我们的问题,现在可以构建应用程序。
关于c# - .NET 4.7.1 项目无法使用 .NET Core 2.0 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49361439/