簡體   English   中英

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

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

背景

我們在VS 2015中開發了一個項目,啟用了C#6,偶爾需要由使用VS 2013而沒有C#6的開發人員打開。

我們無意在這個特定的解決方案中使用C#6(盡我所能)。

問題

Visual Studio和ReSharper建議使用有用的C#6語言結構,這些結構使得解決方案在沒有C#6支持的早期版本的Visual Studio中無法運行。

我已經禁用了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 ,我寫的這個工具可能會對您有所幫助。

您可以使用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>

上面已經寫了一些步驟,只是添加了我的VS2015的截圖:

項目屬性>> Build >> Advanced >>語言版本

在此輸入圖像描述

我把它設置為C#5.0。

右鍵單擊Project Explorer中的Project,然后選擇Properties。

打開“屬性”選項卡后,選擇“生成”,然后單擊右下角的“高級”按鈕。

有一個名為語言版本的下拉框。 將選擇更改為“C#5.0”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM