首页 文章

如何在Visual Studio 2015中禁用C#6支持?

提问于
浏览
136

背景

我们在VS 2015中开发了一个项目,启用了C#6,偶尔需要由使用VS 2013而没有C#6的开发人员打开 .

我们无意在这个特定的解决方案中使用C#6(尽我所能) .

问题

Visual Studio和ReSharper建议使用有用的C#6语言结构,这些结构使得解决方案在没有C#6支持的早期版本的Visual Studio中无法运行 .

我已经disabled the ReSharper C#6 support但我似乎无法在整个解决方案中禁用/限制C#功能 .

问题

如何在解决方案或Visual Studio 2015中限制C#到C#5的功能?

6 回答

  • 9

    您可以单独设置每个项目的语言功能,方法是转到 Properties => Build tab => Advanced button => Language Version 并设置首选版本 .

    您应该意识到它仍将使用新的"C# 6.0" .Net编译器平台(代号为Roslyn) . 但是,该编译器将模仿旧编译器的行为,并将限制您仅在该特定语言版本上可用的功能 .


    我认为没有可用的解决方案范围设置 .

  • 10

    .sln.DotSettings 下面添加应该在解决方案级别禁用它

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

    或者,如果您没有 .sln.DotSettings 文件:

    • 如果您的解决方案文件名为Apple.sln,请在其旁边创建一个名为Apple.sln.DotSettings的文件 .

    • 给它以下内容:

    <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>
    
    • 关闭并重新打开解决方案,Resharper应该只警告你关于C#5的事情 .

    • 当您最终开始使用C#6功能时,不要忘记删除它! :)

  • 8

    您可以使用 MSBuildUserExtensionsPath 为所有 solutions/csproj 设置语言功能 .

    搜索 $(MSBuildUserExtensionsPath) 的值,它应该像 C:\Users\$(User)\AppData\Local\Microsoft\MSBuild

    然后使用以下命令编辑文件 $(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore 中的文件 Force.LangVersion.ImportBefore.props

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

    如果您有许多项目需要设置 LangVersion ,我写的这个tool可能会对您有所帮助 .

  • 10

    上面已经写了一些步骤,只是添加了我的VS2015的截图:

    项目属性>> Build >> Advanced >>语言版本

    enter image description here

    我把它设置为C#5.0 .

  • 133

    右键单击Project Explorer中的Project,然后选择Properties .

    打开“属性”选项卡后,选择“生成”,然后单击右下角的“高级”按钮 .

    有一个名为语言版本的下拉框 . 将选择更改为“C#5.0”

相关问题