【问题标题】:How do you reference a netstandard project from .net project in VS2017?您如何在 VS2017 中从 .net 项目中引用 netstandard 项目?
【发布时间】:2018-06-01 03:46:36
【问题描述】:
我有一个 netstandard2.0 项目,用于与第 3 方 Web 服务进行交互。我需要在同一个解决方案中从较旧的 .net 4.6.2 项目中引用该项目,但是当我这样做时,我会收到一堆关于需要引用我定义的类型的错误。
例如,我将调用 netstandard 库中返回 Task 的方法,但我会收到一条错误消息,指出我需要一个对 System.Threading.Tasks 的引用,即使我已经拥有一个。
【问题讨论】:
标签:
.net
nuget
visual-studio-2017
.net-standard
.net-4.6.2
【解决方案1】:
我认为这里有两个问题。
只有特定版本的 .netstandard 才能与特定版本的 .net 4.X.Y 配合使用
要解决此问题,您可能需要更改一个或两个项目的版本。使用图表找出哪些版本一起兼容:https://docs.microsoft.com/en-us/dotnet/standard/net-standard
- 选择您的项目
- 右键单击属性
- 在“应用程序”选项卡上,使用“目标框架”下拉菜单根据需要更改框架
.net 4.X.Y 使用 4.0.0.0 系统库,而 .netstandardX.Y 使用 4.3.0.0
要解决此问题,您需要添加并引用 netstandard.library NuGet 包。
- 选择您的项目
- 右键单击“管理 NuGet 包...”
- 在“浏览”选项卡上搜索“netstandard.library”
- 选择你需要的版本并安装
(我相信这取决于您最终使用的 .netstandard 版本)
- 导航到每个引用错误,右键单击它,然后添加缺少的任何引用