.net - 你如何在 VS2017 中引用 .net 项目中的 netstandard 项目?

标签 .net nuget visual-studio-2017 .net-standard .net-4.6.2

我有一个 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

  1. 选择您的项目
  2. 右键单击属性
  3. 在“应用程序”选项卡上,使用“目标框架”下拉菜单根据需要更改框架

.net 4.X.Y 使用 4.0.0.0 系统库,而 .netstandardX.Y 使用 4.3.0.0

要解决此问题,您需要添加并引用 netstandard.library NuGet 包。

  1. 选择您的项目
  2. 右键单击“管理 NuGet 包...”
  3. 在“浏览”选项卡上搜索“netstandard.library”
  4. 选择你需要的版本并安装 (我相信这取决于您最终使用的 .netstandard 版本)
  5. 导航到每个引用错误,右键单击它,然后添加缺少的任何引用

关于.net - 你如何在 VS2017 中引用 .net 项目中的 netstandard 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47874586/

相关文章:

c# - 在 Linq where 子句中将 int 转换为字符串

c# - 将 Roslyn 与 Nuget 结合使用时避免大量的包和二进制文件

visual-studio - 如何更改 Visual Studio 2017 中断点的位置

c# - 在控制台应用程序中自托管 SignalR,部署时抛出无法加载文件或程序集“Microsoft.AspNet.SignalR.Core...”

.net - 有人听说过 Accessibility_TLB

c# - 计算数组中的项目,除了等于 -1 的值

c# - .NET 运行时中的 Tcp 缓冲中断

visual-studio - 未知选项 -RequireConsent

visual-studio-2015 - ReSharper "Remove Unused References"功能不会删除通过 NuGet 包添加的引用

c# - Visual Studio 2017 在应用程序设置中找不到连接字符串