El tipo predefinido 'System.ValueTuple´2´ no está definido ni importado
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?
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.
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
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