[C#] Visual Studio 2015에서 C # 6 지원을 비활성화하려면 어떻게합니까?

배경

C # 6을 사용하는 VS 2015에서 개발중인 프로젝트가 있으며 때로는 C # 6없이 VS 2013을 사용하는 개발자가 열어야합니다.

우리는이 특정 솔루션 내에서 C # 6을 사용하려는 의도가 없습니다 (원하는만큼).

문제

Visual Studio 및 ReSharper는 C # 6 지원없이 이전 버전의 Visual Studio에서 솔루션을 사용할 수 없게하는 유용한 C # 6 언어 구성을 제안합니다.

나는 한 ReSharper에서 C # 6 지원을 비활성화 하지만 전체 솔루션을 통해 기능을 비활성화 / 제한 C #을 수없는 것.

질문

솔루션 내에서 또는 Visual Studio 2015 내에서 C #을 C # 5 기능으로 제한하는 방법은 무엇입니까?



답변

Properties => Build tab => Advanced button => Language Version선호하는 버전 으로 이동하여 설정하여 각 프로젝트의 언어 기능을 별도로 설정할 수 있습니다.

여전히 새로운 “C # 6.0”.Net 컴파일러 플랫폼 (코드 명 Roslyn)을 사용한다는 것을 알고 있어야합니다. 그러나 해당 컴파일러는 이전 컴파일러의 동작을 모방 하고 특정 언어 버전에서만 사용할 수있는 기능으로 제한합니다.


사용 가능한 솔루션 범위 설정이 있다고 생각하지 않습니다.


답변

아래 추가 .sln.DotSettings솔루션 수준에서 사용하지 않도록 설정해야

<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>

또는 .sln.DotSettings파일 이없는 경우 :

  1. 솔루션 파일의 이름이 Apple.sln이면 Apple.sln.DotSettings라는 파일 옆에 파일을 만듭니다.

  2. 다음 내용을 알려주세요.

    <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
        <s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>
    </wpf:ResourceDictionary>
    
  3. 솔루션을 닫았다가 다시 열면 Resharper는 C # 5에 대해서만 경고합니다.

  4. C # 6 기능을 사용하기 시작하면이를 제거하는 것을 잊지 마십시오! 🙂


답변

내가 작성한 이 도구 는 설정해야 할 프로젝트가 많은 경우 도움이 될 수 있습니다 LangVersion.


답변

당신은 모든의 언어 기능을 설정할 수 있습니다 solutions/csprojMSBuildUserExtensionsPath.

의 값을 검색하면 $(MSBuildUserExtensionsPath)다음과 같아야합니다.C:\Users\$(User)\AppData\Local\Microsoft\MSBuild

그런 다음 Force.LangVersion.ImportBefore.props폴더를 $(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore사용 하여 파일 을 편집하십시오 .

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LangVersion>5</LangVersion>
  </PropertyGroup>
</Project>


답변

단계는 이미 VS2015의 스크린 샷을 추가하여 이미 작성되었습니다.

프로젝트 속성 >> 빌드 >> 고급 >> 언어 버전

여기에 이미지 설명을 입력하십시오

C # 5.0으로 설정했습니다.


답변

프로젝트 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.

속성 탭이 열리면 빌드를 선택하고 오른쪽 하단의 고급 버튼을 클릭하십시오.

언어 버전이라는 드롭 다운 상자가 있습니다. 선택을 “C # 5.0″으로 변경


답변