Синтаксис кортежа в VS 2017

В VS2017 RC, когда вы пытались использовать новый синтаксис кортежа, вы получили следующую ошибку:

CS8179 Предопределенный тип 'System.ValueTuple`X' не определен или импортированы

Чтобы использовать синтаксис кортежа, вам нужно вручную импортировать пакет ValueTuple nuget в проект. Не так уж и важно, поскольку это была предварительная версия, и я думал, что она будет изменена в RTM, поэтому она будет включена по умолчанию. К сожалению, в окончательной версии релиза все еще так, и вам нужно скачать пакет nuget для каждого отдельного проекта, чтобы использовать синтаксис кортежа.

Есть ли способ включить синтаксис кортежа для каждого проекта по умолчанию?

Ответ 1

Согласно https://github.com/dotnet/roslyn/issues/13177, типы ITuple и ValueTuple будут добавлены в mscorlib в "первом версии после".NET Framework 4.7. В соответствии с . Замечания по выпуску .NET Framework 4.7, она была добавлена. Добавив его к 4.6.x, он сломает semver. Следовательно, они предоставили типы как пакет Nuget, чтобы проекты, основанные на более старых версиях рамок, могли использовать его.

Это похоже на проект .NET 2.0, который хочет использовать LINQ, который методы расширения были в System.Core, а не mscorlib.

Один из вариантов, который вы могли бы сделать, - создать свои собственные шаблоны проектов в промежутке, которые ссылаются на пакет NuGet.