Как включить все возможности С# 7 в проекте Visual Studio 2017?

После выхода Visual Studio 2017 я попытался создать простой консольный проект с новыми функциями С# 7. Я ожидал, что просто загружу новую версию Visual Studio 2017, а затем создаю новый консольный проект и могу использовать новые возможности С# 7. Но я не могу.

Я могу использовать некоторые функции, такие как Tuples, если я устанавливаю пакет NuGet System.ValueTuple.

Но для других функций я не знаю, что мне нужно делать. Например эта проблема NuGet.

Нужно ли мне сейчас делать эту грязную установку? Или я могу включить функции С# 7 более простым способом?

Ответ 1

Для произвольных типов задач, с которыми вы связаны во второй части вашего вопроса, вам нужно включить System.Threading.Tasks.Extensions.

Причина, по которой вам нужны эти пакеты NuGet, заключается в том, что новые функции языка зависят от новых типов, добавленных в платформу .NET. Новые типы, на которые зависят функции языка С#, не будут "встроены в структуру" до следующей младшей версии, выпущенной после 4.6.2, чтобы не нарушить SemVer 1. Поэтому, если вы не строите проект с использованием следующей версии фреймворка, вам нужно будет использовать пакеты NuGet, чтобы заставить эти функции работать.

Это не отличается от того, как использовать методы расширения в проекте .NET 2.0. Вы можете использовать методы расширения, но вам нужно использовать пакет NuGet (или добавить код самостоятельно), чтобы получить типы, которые он полагает для добавления в ваш проект.


1: Итак, 4.7 или 5.0, независимо от того, что они решили назвать, если в нем будет 4.6.3, это не будет в этой версии, потому что это не малый выпуск версии bump, это ошибка в патч-версии и вы не можете изменять API в исправлении, не нарушая Semantic Versioning.

Ответ 2

Любой проект, нацеленный на .NET 4.7, может использовать кортежи С# 7 без добавления пакета Nuget. Вам нужно будет установить его вручную:

  • Обновите Windows Creator Update (10.0.15063) или установите .NET Framework 4.7 на другие версии Windows: https://www.microsoft.com/en-us/download/details.aspx?id=55170
  • В меню "Пуск" запустите Visual Studio Installer и нажмите "Изменить". Перейдите к "Индивидуальные компоненты" и проверьте следующие два компонента:
    • .NET Framework 4.7 SDK
    • Пакет таргетинга .NET Framework 4.7

Он не работает из-за коробки в Windows 10 Creator Update, поскольку Microsoft опустила компоненты .NET 4.7 из рабочей нагрузки среды .NET. Я подал ошибку, но они закрыли ее как "Не ошибка":

Вы должны найти установщика в меню "Пуск", потому что Microsoft нарушила "Изменить" из приложений и функций (ранее называвшихся "Программы и функции" ). Они "работают над улучшением этого в будущей версии".