关于c#:未定义或导入预定义类型’System.ValueTuple’2′

Predefined type 'System.ValueTuple′2′ is not defined or imported

我安装了Visual Studio 15 Preview 3并尝试使用新的元组功能

1
2
3
4
5
6
7
8
9
10
static void Main(string[] args)
{
    var x = DoSomething();
    Console.WriteLine(x.x);
}

static (int x, int y) DoSomething()
{
    return (1, 2);
}

当我编译时,我得到了错误:

0

根据博客文章,这个功能在默认情况下应该是"打开"的。

我做错了什么?


4.6.2 for .NET .NET 1.X或低,核心和。NET 1.x的标准,你需要安装nuget System.ValueTuple:包装

1
Install-Package"System.ValueTuple"

一包或使用参考:在VS 2017

1
<PackageReference Include="System.ValueTuple" Version="4.4.0" />

NET框架的核心和4.7,.NET .NET 2.0 2.0标准,包括论文的类型。


它的.NET Framework 4.7部分。

只要你不图上面的框架或高或.NET Core 2.0/ .NET Standard 2.0),你就需要参考ValueTuple。这样做的System.ValueTupleNuGet Package添加。


一个新的框架valuetuple内置类型:

  • NET框架。
  • NET 2.0的核心
  • 单5.0
  • NET 2.0的标准。

直到你得到一个新的目标的框架的版本,你需要参考的valuetuple包。

更多的细节在blog.monstuff.com http:/ / / / / valuetuple-availability.html 2017年档案


在Visual Studio代码使用内置在终端和运行:

1
dotnet add package"System.ValueTuple"

不要忘记做dotnet restore后来。


其他人有同样的问题的案例,一个错误的回答后,这个更新项目到4.7。oddly不够,我不得不把这system.valuetuple参考误差去了。


确保你的.NET开发者。4.6.2包装与安装在System.ValueTuple然后拉从nuget包。


我不得不检查system.valuetuple.dll源控制和正确的文件是在其.cssproj参考文件:

  • 解决方案中的每个项目rightclick
  • 卸载项目
  • 编辑文件:变更.cssproj
  • 参考include<="system.valuetuple">

    hintpath><

    项目名称项目名称…………………OBJ packagetmp包释放是 system.valuetuple.dll

    hintpath></

    <参考>

    参考include<="system.valuetuple">

    hintpath><

    …………………system.valuetuple.4.4.0 包装 system.valuetuple.dll netstandard1.0 lib

    hintpath></

    <参考>

  • 的变化和重新保存的项目
  • 查找和保存到这个文件夹system.valuetuple.dll IT
  • 添加这个文件到源控制参考
  • (可选):7。解决问题与另一个同样这样。DLL文件