it-swarm.com.ru

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

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

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

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

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

57
chromigo

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

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

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


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

34
Scott Chamberlain

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

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

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

21
Tao Yue

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

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

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

2
M.Hassan