Как я могу включить все функции C# 7 в проекте Visual Studio 2017?

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

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

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

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

3 ответа

Решение

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

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

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


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

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

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

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

Vs2017 обновление 3 может поддерживать C#7.1, но по умолчанию оно настроено на поддержку C#7.0.

Вы можете изменить настройки вашего проекта и выбрать C#7.1

для более подробной информации о том, как настроить vs2017.3 для поддержки последней версии C#7.1

Другие вопросы по тегам