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

时间:2017-12-18 18:44:53

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

我有一个netstandard2.0项目,我用它与第三方Web服务进行交互。我需要在相同的解决方案中从较旧的.net 4.6.2项目引用该项目,但是当我这样做时,我得到一些关于需要引用我已定义的类型的错误。

例如,我将在netstandard库中调用一个返回Task的方法,但是我会收到一条错误,说我需要对System.Threading.Tasks的引用,即使我已经有了。

1 个答案:

答案 0 :(得分:4)

我相信这里有两个问题。

只有特定版本的.netstandard才能使用某些版本的.net 4.X.Y

要解决此问题,您可能需要更改一个或两个项目的版本。使用图表确定哪些版本兼容:https://docs.microsoft.com/en-us/dotnet/standard/net-standard

  1. 选择您的项目
  2. 右键单击属性
  3. 在“应用程序”选项卡上,使用“目标框架”下拉列表根据需要更改框架
  4. .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. 导航到每个引用错误,右键单击它,并添加缺少的任何引用