升级到.Net Standard 2,现在项目说参考不存在

时间:2017-08-18 20:40:07

标签: visual-studio .net-standard .net-standard-2.0

我刚刚将.Net Standard 1.4 PCL dll升级到.Net Standard 2.0。我正在尝试编写一个返回ValueTuple的方法,我得到错误:

Cannot define a class or member that utilizes tuples because the compiler required type 'System.Runtime.CompilerServices.TupleElementNamesAttribute' cannot be found. Are you missing a reference?

但是......有点儿。以下是我的project.json所说的内容:

{
  "supports": {},
  "dependencies": {
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "2.0.0",
    "Newtonsoft.Json": "10.0.3",
    "System.Collections.Specialized": "4.3.0",
    "System.ComponentModel.Annotations": "4.4.0",
    "System.Net.Http": "4.3.2",
    "System.Reflection": "4.3.0",
    "System.Runtime.Serialization.Primitives": "4.3.0",
    "System.ServiceModel.Primitives": "4.4.0",
    "System.ValueTuple": "4.4.0"
  },
  "frameworks": {
    "netstandard2.0": {}
  }
}

但是当我扩展我对项目的引用时,我注意到没有列出几个包。

enter image description here

我试过这个answer没有成功。

编辑:我正在使用VS 2017

2 个答案:

答案 0 :(得分:2)

我无法绕过这个SNAFU所以我最终只是创建了一个基于.net标准2.0的全新项目。将我的所有文件复制到新项目,并将其添加为我所有项目的参考。它摧毁了我的resharper,但其他一切都有效。

答案 1 :(得分:1)

我也遇到了这个问题。原来我的.csproj文件有下面的行,即使引用的版本是.NET Core 2.0。我删除了这些行并成功构建了项目。

<RuntimeFrameworkVersion>1.1.2</RuntimeFrameworkVersion>
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>