How do I disable C# 6 Support in Visual Studio 2015?

前端 未结 6 1187
名媛妹妹
名媛妹妹 2020-12-04 08:14

Background

We have a project that we\'re developing in VS 2015 with C#6 enabled that occasionally needs to be opened by developers using VS 2013 without C#6.

相关标签:
6条回答
  • 2020-12-04 08:44

    You can set the language feature for all the solutions/csproj with the MSBuildUserExtensionsPath.

    Search the value of the $(MSBuildUserExtensionsPath), it should be something like C:\Users\$(User)\AppData\Local\Microsoft\MSBuild

    Then edit the file Force.LangVersion.ImportBefore.props in the folder $(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore with :

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <LangVersion>5</LangVersion>
      </PropertyGroup>
    </Project>
    
    0 讨论(0)
  • 2020-12-04 08:45

    This tool I wrote might help you if you have many projects that you need to set LangVersion for.

    0 讨论(0)
  • 2020-12-04 08:59

    You can set the language feature for each project separately by going to Properties => Build tab => Advanced button => Language Version and set your preferred version.

    You should realize that it will still use the new "C# 6.0" .Net Compiler Platform (codenamed Roslyn). However, that compiler will imitate the behavior of older compilers and will limit you to features only available on that specific language version.


    I don't think that there's a solution-wide setting available.

    0 讨论(0)
  • 2020-12-04 08:59

    Right click on Project in Project Explorer and select Properties.

    When the Properties tab opens select Build and the click the Advance button in bottom right.

    There is drop-down box called Language Version. Change the select to "C# 5.0"

    0 讨论(0)
  • 2020-12-04 09:00

    Steps have already been written above, just adding a screenshot further of my VS2015:

    Properties of project >> Build >> Advanced >> Language version

    I set that to C# 5.0.

    0 讨论(0)
  • 2020-12-04 09:09

    add below in .sln.DotSettings should disable it on solution level

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

    Or if you don't have a .sln.DotSettings file:

    1. If your solution file is called Apple.sln, create a file beside it called Apple.sln.DotSettings.

    2. Give it the following contents:

      <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. Close and reopen the solution, Resharper should only warn you about C#5 things.

    4. Don't forget to remove this when you eventually start using C#6 features! :)

    0 讨论(0)
提交回复
热议问题