Visual Studio 2015에서 C # 7을 사용하는 방법은 무엇입니까?


146

Visual Studio 2017 (15.x)은 C # 7을 지원하지만 Visual Studio 2015 (14.x)는 어떻습니까?

C # 7을 어떻게 사용합니까?


2
이 링크를 참조하십시오 : strathweb.com/2016/03/…
Sunil Kumar

8
@ SunilKumar : VS 15 (VS 2017)에서 사용할 수 있습니다. VS 2015 (VS 14)는 어디에도 언급되어 있지 않습니다.
Jon Skeet

답변:


162

Nuget 패키지 Microsoft.Net.Compilers를 설치하여 C # 7 지원 버전의 Visual Studio와 함께 제공된 컴파일러를 교체 할 수 있습니다 .

이 패키지를 참조하면 시스템에 설치된 버전과 달리 패키지에 포함 된 특정 버전의 C # 및 Visual Basic 컴파일러를 사용하여 프로젝트가 빌드됩니다.

패키지 페이지에서 이것이 Visual Studio 2015에서 공식적으로 지원되는지 여부를 알 수있는 징후는 없습니다. 지금까지 철저한 테스트를 거치지 않았지만 아무런 문제없이 C # 7 코드가 컴파일되었지만 빨간색으로 밑줄이 그어져 있습니다. 구문 오류를 나타내는 구불 구불 한 줄 : 새로운 C # 7 값 튜플 기능을 사용하려면 스크린 샷Nuget 패키지 System.ValueTuple도 설치해야 합니다.


9
이 경우는 2,017 비주얼 스튜디오를 설치 단순히 비주얼 스튜디오 코드를 사용하거나 더 좋을 것이다 커뮤니티
파나지오티스 Kanavos

3
이것은 좋은 것입니다. 따라서 긴급한 경우 다른 개발자 코드를 사용할 수 있다는 것을 알고 일부 프로젝트를 VS2017로 천천히 전환 할 수 있습니다 .
ecth

10
중소 대기업 VS2017 Community Edition의 직원이 정식 사용자로 사용될 수없는 경우 @PanagiotisKanavos와 이론에 동의합니다. VS 코드가 진정한 FOSS라고 생각합니다.
Chris Marisic

6
최신 Microsoft.Net.Compilers nuget을 Xamarin.Forms UWP, Windows 8.1 및 Windows Phone 8.1 프로젝트와 최신 System.ValueTuple nuget (다른 모든 System. * 시리즈 너겟의 최신 개정판)에 설치했습니다. . 빌드 및 런타임에서 모든 것이 잘 작동하는 것으로 보입니다. (디버거의 기능 세트에 대한 구석 구석은 시도하지 않았습니다.)
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 bloke

5

필자의 경우 Microsoft.Net.Compilers 만 설치하면 작동하지 않습니다. 대신 다음을 수행해야했습니다.

  1. 프로젝트에 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 을 설치 하고 ( Tools => NuGet Package Manager => Nuget Packages for Solution ... ) Microsoft.CodeDom.Providers.DotNetCompilerPlatform을 설치 하십시오 .
  2. 프로젝트에 최신 Microsoft.Net.Compilers 를 설치하십시오.
  3. 사용하려는 최신 C # 기능을 위해 다른 NuGet 패키지를 설치하십시오. 필자의 경우 Tuples를 사용하는 것이 목표이므로 System.ValueTuple을 설치 하고 정상적으로 작동했습니다.

그러나 여전히 Visual Studio 2015 기본 컴파일러에 의해 알려지지 않은 C # 코드는 여전히 아래에 빨간색 조각이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.