我有一个 netstandard2.0 项目,用于与第 3 方网络服务交互。我需要在同一解决方案中从较旧的 .net 4.6.2 项目引用该项目,但是当我这样做时,我会收到一堆关于需要引用我定义的类型的错误。
例如,我将调用 netstandard 库中的一个返回 Task 的方法,但我会收到一条错误消息,提示我需要对 System.Threading.Tasks 的引用,即使我已经有一个。
最佳答案
我认为这里有两个问题。
只有特定版本的 .netstandard 可以与特定版本的 .net 4.X.Y 一起使用
要解决此问题,您可能需要更改一个或两个项目的版本。使用图表找出哪些版本兼容:https://learn.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 版本)
- 导航到每个引用错误,右键单击它,然后添加缺少的任何引用
关于.net - 你如何在 VS2017 中引用 .net 项目中的 netstandard 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47874586/