Как я могу включить все функции 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. Вам придется установить его вручную:
- Обновите приложение до Windows 10 Creator (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
Он не работает "из коробки" при обновлении 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