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를 사용하고 있지만 이것을 사용하고 있습니다.
- Resharper의 단위 테스트가 어떤 이유로 Visual Studio 2015에서 작동하지 않습니다.
- VS 2015는 VS 2013보다 훨씬 많은 메모리를 사용합니다.
나는이 문제에 대한 해결책을 지금 찾고 있었기 때문에 이것을 여기에두고 있으며 아마도 다른 누군가를 도울 것입니다.
답변
약간의 오해가있는 것 같습니다. 그래서, 대신 여기 VS2013 패치를하려고 노력입니다 및 Microsoft 사람의 대답 : https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 2013 년 대 60 년까지 지원 될 것인가? 포럼 = roslyn
따라서 읽어보고 VS2015를 설치하십시오.