我的问题与我在网上发现的每一个问题完全相反。
我想在Resharper中启用 C#7.0警告/错误(在VS2017中运行,今天刚安装的版本。)
我需要这样做,因为我正在处理的项目将发布到我的工作场所的服务器上,当使用C#7.0功能(R# C# 7.0 language feature
)时,他们的CI会抛出致命的错误,所以我不能使用它们(他们不会接受任何因CI而致命失败的项目。)
他们在CI中使用Resharper CLI。所以我想让我的Resharper抛出相同的错误,这样我就可以快速找到并消除C#7.0的功能。我的Resharper显示项目是干净的(除了一些小的“它可能是一个问题,但它不适合我”),所以当我运行代码分析时,我没有致命错误甚至是关于C#7.0的警告。
到目前为止,我所看到的每个问题都是询问如何禁用有关C#7.0的警告。我的Resharper没有发出任何警告或错误,而我们的CI则是。
我查看了选项,但找不到任何明显的“C#7.0”选项。我已经找了类似“最大支持语言/抛出错误,如果使用更高版本的语言功能/等”,但我似乎找不到任何东西。
编辑:Web.config codedom部分:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
</compilers>
</system.codedom>
它肯定设置为语言版本6 ...
答案 0 :(得分:7)
您可以通过右键单击项目来配置构建引擎用于每个项目的C#版本,选择Properties
,选择Build
部分,点击Advanced...
,设置{{ 1}}到CI服务器使用的任何版本。执行此操作后,在本地构建任何C#7.0功能时,构建将失败。
或者,您可以尝试升级CI服务器以使用C#7.0。
答案 1 :(得分:0)
Resharper语言规则和Studio规则位于不同的位置。 您可以在项目设置中找到Studio(和Roslyn)规则。 Resharper将警告规则保存在 [ProjectName] .csproj.DotSettings 文件中。
Xml节点:
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp70</s:String>
可以安全地删除此文件,将其恢复为默认状态。
警告文件6.0将如下所示:
<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">CSharp60</s:String>
</wpf:ResourceDictionary>