Як користуватися C # 7 з Visual Studio 2015?


146

Visual Studio 2017 (15.x) підтримує C # 7, а як щодо Visual Studio 2015 (14.x)?

Як я можу використовувати C # 7 з ним?


2
перейдіть за цим посиланням: strathweb.com/2016/03/…
Суніл Кумар

8
@SunilKumar: Це дозволяє їх у VS 15 (це VS 2017). Він ніде не згадує VS 2015 (що є VS 14).
Джон Скіт

Відповіді:


162

Ви можете замінити компілятор, що постачається разом із Visual Studio, на версію з підтримкою C # 7, встановивши пакет Nuget Microsoft.Net.Compilers :

Посилання на цей пакет призведе до того, що проект буде побудований за допомогою конкретної версії компіляторів C # і Visual Basic, що містяться в пакеті, на відміну від будь-якої встановленої версії системи.

Немає вказівки на те, що я бачу на сторінці пакунків щодо того, чи офіційно це підтримується у Visual Studio 2015. Мої непрофільні тести поки що вказують, що він працює, але не безболісно - код C # 7 компілюється, але підкреслений червоним чітка лінія, яка вказує на синтаксичну помилку: Знімок екранаЗверніть увагу, що вам також потрібно буде встановити пакет Nuget System.ValueTuple, щоб використовувати нові функції кортежу значення C # 7.


9
У такому випадку було б краще використовувати VIsual Studio Code або просто встановити спільноту Visual Studio 2017
Panagiotis Kanavos

3
Це добре знати. Таким чином, ви можете повільно переключити деякі проекти на VS2017, знаючи, що у разі надзвичайної ситуації інші розробники можуть працювати з вашим кодом.
ecth

10
Зверніть увагу, хоча я теоретично погоджуюся з @PanagiotisKanavos, якщо ваш працівник середньої або великої компанії VS2017 Community Edition, ймовірно, не може використовуватись як ліцензіат. Я вважаю, що код VS - це справжній FOSS.
Кріс Марісіч

6
Я встановив останню програму Microsoft.Net.Compilers до моїх проектів Xamarin.Forms UWP, Windows 8.1 та Windows Phone 8.1, а також найновіший нуль System.ValueTuple (плюс остання редакція всіх інших системних нумерів. * Серії) . Здається, все працює нормально під час збирання та виконання. (Я не пробував усіх куточків набору функцій налагоджувача.)
optikos

13
VS2015.3, компілюючи для .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- Мені потрібно було використовувати цю версію: nuget.org/packages/Microsoft.Net.Compilers/2.4.0, щоб створити її, тоді вона спрацювала нормально. :)
CAD заблокував

5

У моєму випадку встановлення лише Microsoft.Net.Compilers не працювало. Натомість мені довелося зробити наступне:

  1. Встановіть Microsoft.CodeDom.Providers.DotNetCompilerPlatform для проекту ( Інструменти => NuGet Package Manager => Управління пакетами Nuget для рішення ... ) та встановіть Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  2. Встановіть найновіші Microsoft.Net.Compilers для проекту
  3. Встановіть будь-який інший пакет NuGet для останньої функції C #, яку ви хочете використовувати. У моєму випадку моєю метою було використовувати Tuples, тому я встановив System.ValueTuple і працював чудово.

Але все ж зауважте, що коди C #, які не відомі компілятору за замовчуванням Visual Studio 2015, все ще матимуть червоні клочки під ним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.