Sea*_*een 136 c# visual-studio c#-5.0 c#-6.0 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的功能?
i3a*_*non 135
您可以通过转到Properties => Build tab => Advanced button => Language Version并设置首选版本来单独为每个项目设置语言功能.
您应该意识到它仍将使用新的"C#6.0".Net编译器平台(代号为Roslyn).但是,该编译器将模仿旧编译器的行为,并将限制您仅在该特定语言版本上可用的功能.
我认为没有可用的解决方案范围设置.
har*_*shr 49
下面添加.sln.DotSettings应该在解决方案级别禁用它
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>
Run Code Online (Sandbox Code Playgroud)
或者,如果您没有.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>
Run Code Online (Sandbox Code Playgroud)关闭并重新打开解决方案,Resharper应该只警告你关于C#5的事情.
当您最终开始使用C#6功能时,不要忘记删除它!:)
小智 10
您可以为所有的语言功能solutions/csproj与MSBuildUserExtensionsPath.
搜索的值$(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>
Run Code Online (Sandbox Code Playgroud)
右键单击Project Explorer中的Project,然后选择Properties.
打开"属性"选项卡后,选择"生成",然后单击右下角的"高级"按钮.
有一个名为语言版本的下拉框.将选择更改为"C#5.0"
| 归档时间: |
|
| 查看次数: |
26668 次 |
| 最近记录: |