Resharper:在C#7.0功能上启用警告?

时间:2017-05-09 00:29:21

标签: resharper c#-7.0

我的问题与我在网上发现的每一个问题完全相反。

我想在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 ...

2 个答案:

答案 0 :(得分:7)

您可以通过右键单击项目来配置构建引擎用于每个项目的C#版本,选择Properties,选择Build部分,点击Advanced...,设置{{ 1}}到CI服务器使用的任何版本。执行此操作后,在本地构建任何C#7.0功能时,构建将失败。

enter image description here

或者,您可以尝试升级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>