Как включить все возможности С# 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 нарушила "Изменить" из приложений и функций (ранее называвшихся "Программы и функции" ). Они "работают над улучшением этого в будущей версии".
Ответ 3
Обновление Vs2017 3 может поддерживать С# 7.1, но по умолчанию оно настроено на поддержку С# 7.0.
Вы можете изменить настройки своего проекта и выбрать С# 7.1
для более подробной информации как настроить vs2017.3 для поддержки последней версии С# 7.1