El tipo predefinido 'System.ValueTuple´2´ no está definido ni importado

Resuelto gsharp asked hace 8 años • 10 respuestas

Instalé Visual Studio 15 Preview 3 e intenté usar la nueva función de tupla

static void Main(string[] args)
{
    var x = DoSomething();
    Console.WriteLine(x.x);
}

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

Cuando compilo me sale el error:

El tipo predefinido 'System.ValueTuple´2´ no está definido ni importado

Según la publicación del blog , estas funciones deberían estar "activadas" de forma predeterminada.

¿Qué hice mal?

gsharp avatar Jul 15 '16 02:07 gsharp
Aceptado

Para .NET 4.6.2 o inferior, .NET Core 1.x y .NET Standard 1.x, necesita instalar el paquete NuGet System.ValueTuple:

Install-Package "System.ValueTuple"

O usando una referencia de paquete en VS 2017:

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

.NET Framework 4.7, .NET Core 2.0 y .NET Standard 2.0 incluyen estos tipos.

Eli Arbel avatar Jul 14 '2016 19:07 Eli Arbel

Es parte del .NET Framework 4.7.

Siempre que no apunte al marco anterior o superior (o .NET Core 2.0/ .NET Standard 2.0), deberá hacer referencia a ValueTuple. Haga esto agregando elSystem.ValueTuple NuGet Package

Nikita avatar Apr 06 '2017 20:04 Nikita

Los tipos ValueTuple están integrados en marcos más nuevos:

  • Marco .NET 4.7
  • .NET Core 2.0
  • Mono 5.0
  • .Net Estándar 2.0

Hasta que apunte a una de esas versiones más nuevas del marco, debe hacer referencia al paquete ValueTuple.

Más detalles en http://blog.monstuff.com/archives/2017/03/valuetuple-availability.html

Julien Couvreur avatar May 28 '2017 21:05 Julien Couvreur