C # 6.0에 도입 된 최신 기능을 살펴 보았고 방금 자동 속성 초기화 프로그램의 예를 보았습니다.
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
그러나 내 IDE는 구문을 인식하지 못했습니다.
Visual Studio 2013에서 C # 6.0을 사용하도록 설정하는 방법이 궁금합니다. 사용중인 대상 프레임 워크는 4.5.1입니다.
C # 6.0에 도입 된 최신 기능을 살펴 보았고 방금 자동 속성 초기화 프로그램의 예를 보았습니다.
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
그러나 내 IDE는 구문을 인식하지 못했습니다.
Visual Studio 2013에서 C # 6.0을 사용하도록 설정하는 방법이 궁금합니다. 사용중인 대상 프레임 워크는 4.5.1입니다.
답변:
에 따르면 이 그냥 설치 및 Visual Studio 2013 갈 것 :
실제로이 릴리스에서 C # 6.0 컴파일러를 설치하면 Visual Studio 2013 확장을 설치하는 것 외에 MSBuild 대상 파일이 업데이트됩니다.
https://github.com/dotnet/roslyn 에서 파일을 가져 오면 바로 사용할 수 있습니다 .
더 이상 Visual Studio 2013 패키지를 업데이트하지 않기 때문에 구식 버전의 사양을 구현해야합니다 .
Visual Studio 2013 위에 설치되는 4 월의 최종 사용자 미리보기를 사용해 볼 수도 있습니다 (참고 :이 VS 2013 미리보기는 최신 버전이 아니며 더 이상 업데이트되지 않습니다)
따라서 최신 버전을 사용하려면 Visual Studio 2015 를 다운로드해야합니다 .
VS2013에서는 새로운 컴파일러를 너겟 패키지 로 프로젝트에 설치할 수 있습니다 . 그렇게하면 VS2015 또는 업데이트 된 빌드 서버가 필요하지 않습니다.
https://www.nuget.org/packages/Microsoft.Net.Compilers/
Install-Package Microsoft.Net.Compilers
패키지를 사용하면 C # 6.0 코드 / 구문을 사용 / 빌드 할 수 있습니다. VS2013은 기본적으로 새로운 C # 6.0 구문을 인식하지 못 하므로 코드 편집기 창에 오류가 표시되지만 정상적으로 빌드 됩니다.
Resharper를 사용하면 C # 6 기능에 구불 구불 한 선이 표시되지만 전구는 '이 프로젝트에 C # 6.0 지원 사용'(.DotSettings에 저장 됨) 옵션을 제공합니다.
@ stimpy77에서 언급했듯이 MVC Razor보기 를 지원 하려면 추가 패키지 가 필요 합니다 (주석을 읽지 않는 사람들을 위해)
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
완전한 C # 6.0 지원을 원하면 VS2015를 설치해야합니다.
여기에 많은 답변이 Roslyn (오픈 소스 .NET C # 및 VB 컴파일러)이 .NET 4.6으로 이동하기 전에 작성되었습니다 . 따라서 프로젝트가 4.5.2와 같이 (상속되고 변경할 수 없음) 대상을 지정하면 도움이되지 않습니다.
그러나 https://www.nuget.org/packages/Microsoft.Net.Compilers 에서 이전 버전의 Roslyn 을 가져와 최신 버전 대신 설치할 수 있습니다. 나는 1.3.2를 사용했다. .NET 4.5에서 실행되는 마지막 버전 인 2.0.1을 시도했지만 컴파일 할 수 없었습니다 *. VS 2013의 패키지 관리자 콘솔에서이를 실행하십시오.
PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2
그런 다음 Visual Studio를 다시 시작하십시오. 처음에는 몇 가지 문제가있었습니다. C # 버전을 다시 기본값 으로 설정해야합니다 (C # 6.0은 버전 목록에 나타나지 않지만 기본값으로 설정된 것 같습니다). 정리, 저장, VS를 다시 시작하고 다시 컴파일하십시오.
흥미롭게도 코드에 사용 된 C # 6.0 기능 (처음으로 C # 6.0을 원하는 이유)으로 인해 IntelliSense 오류가 없었습니다.
* 버전 2.0.1에서 오류가 발생 함 "Microsoft.CodeAnalysis.BuildTasks.Csc 작업을 어셈블리 Microsoft.Build.Tasks.CodeAnalysis.dll에서로드 할 수 없습니다. 파일 또는 어셈블리를로드 할 수 없습니다 'Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a '또는 해당 종속성 중 하나가 시스템에서 지정된 파일을 찾을 수 없음 선언이 올바른지, 어셈블리 및 모든 종속성이 사용 가능한지, 태스크에 Microsoft.Build.Framework.ITask를 구현하는 공용 클래스
업데이트이 답변을 게시 한 후 주목할 점은 디버그 중 코드를 변경하면 ( "편집 및 계속") C # 6.0 코드가 갑자기 되돌릴 것 같은 오류로 갑자기 표시된다는 것입니다. C # 6.0 이전 환경. 디버그 세션을 다시 시작해야합니다. 특히 웹 애플리케이션에서 매우 성가시다.
VS 2015 사용자 의 빌드 시간이 다음과 같이 늘어날 것이라고 언급 할 가치 가 있습니다 .
Install-Package Microsoft.Net.Compilers
VS 2015를 사용하고 있고 프로젝트에서이 패키지를 유지 해야하는 사용자는 빌드 시간 증가를 해결할 수 있습니다 .
파일을 편집 packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props
하고 정리하십시오. 파일은 다음과 같아야합니다.
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>
그렇게하면 Microsoft.Net.Compilers
패키지 를 추가하기 전에 프로젝트를 강제로 빌드 합니다
Resharper가있는 경우 Visual Studio 2013에서 전체 C # 6.0 기능을 사용할 수 있습니다.
Resharper Build와 voilá를 활성화해야합니다! Resharper 옵션-> 빌드-Resharper 빌드를 활성화하고 "MSBuild.exe 버전 사용"에서 "최신 설치"를 선택하십시오.
이 방법으로 Resharper는 C # 6.0 프로젝트를 빌드하고 C # 6.0 코드에 유효하지 않은 밑줄을 표시하지 않습니다.
Visual Studio 2015를 사용하고 있지만 이것을 사용하고 있습니다.
나는이 문제에 대한 해결책을 지금 찾고 있었기 때문에 이것을 여기에두고 있으며 아마도 다른 누군가를 도울 것입니다.
약간의 오해가있는 것 같습니다. 그래서, 대신 여기 VS2013 패치를하려고 노력입니다 및 Microsoft 사람의 대답 : https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 2013 년 대 60 년까지 지원 될 것인가? 포럼 = roslyn
따라서 읽어보고 VS2015를 설치하십시오.