[英]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
文件:
如果您的解決方案文件名為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功能時,不要忘記刪除它! :)
如果您有許多項目需要設置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>
右鍵單擊Project Explorer中的Project,然后選擇Properties。
打開“屬性”選項卡后,選擇“生成”,然后單擊右下角的“高級”按鈕。
有一個名為語言版本的下拉框。 將選擇更改為“C#5.0”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.