c# - .NET 4.7.1 项目无法使用 .NET Core 2.0 库

标签 c# .net visual-studio .net-core

我搜索了很多但找不到解决我的问题的方法(我见过类似的运行时问题但没有构建)。

我有一个引用 .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/

相关文章:

c# - 为什么在 c# 中不能将可空的 int 作为字符串为 null?

c# - Stream.Read什么时候返回?

c# - 来自 WCF 请求的 IPrincipal

java - 当 SoapAction 丢失时,.NET 2.0 Web 服务可以处理来自客户端的调用吗?

c++ - 是否有允许您自定义构建 vcproj 的工具?

c# - 使用属性向方法添加参数

c# - ASP.Net 模拟方法的差异

c# - IO操作的并发问题

c# - 构建成功但发布失败——此版本的Microsoft.AspNetCore.All只兼容netcoreapp2.2目标框架

visual-studio - Visual Studio 无法从私有(private) Nuget 服务器中找到 Nuget 包