Resharper:启用 C# 7.0 功能的警告?
Resharper: Enable warnings on C# 7.0 features?
我的问题与我在网上找到的几乎所有问题都相反。
我想在 Resharper 中启用 C# 7.0 warnings/errors(运行ning 在 VS2017 中,今天刚安装。)
我需要这样做,因为我正在处理的项目将发布到我工作场所的服务器上,并且当使用 C# 7.0 功能时,他们的 CI 会抛出致命错误 (R# C# 7.0 language feature
),所以我不能使用它们(他们不会接受任何因 CI 而致命失败的项目。)
他们在 CI 中使用 Resharper CLI。所以我想让我的 Resharper 抛出同样的错误,这样我就可以快速定位并消除 C# 7.0 的特性。我的 Resharper 显示项目是干净的(除了一些小的 "it might be a problem but it's not for me" 东西),所以当我 运行 代码分析时,我没有致命错误甚至关于 C# 7.0 的警告。
到目前为止我看到的每个问题都是关于如何禁用 关于 C# 7.0 的警告。我的 Resharper 没有抛出任何警告或错误,而我们 CI 上的是。
我查看了所有选项,但找不到任何明显的 "C# 7.0" 选项。我一直在寻找类似 "maximum supported language/throw an error if language feature in later version is used/etc" 的东西,但我似乎找不到任何东西。
编辑: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...
您可以通过右键单击项目配置构建引擎为每个项目使用的 C# 版本,select Properties
,Select Build
部分,单击在 Advanced...
上,将 Language version
设置为您的 CI 服务器使用的任何版本。执行此操作后,当您在任何 C#7.0 功能上进行本地构建时,构建将失败。
或者您可以尝试将 CI 服务器升级为使用 C#7.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>
我的问题与我在网上找到的几乎所有问题都相反。
我想在 Resharper 中启用 C# 7.0 warnings/errors(运行ning 在 VS2017 中,今天刚安装。)
我需要这样做,因为我正在处理的项目将发布到我工作场所的服务器上,并且当使用 C# 7.0 功能时,他们的 CI 会抛出致命错误 (R# C# 7.0 language feature
),所以我不能使用它们(他们不会接受任何因 CI 而致命失败的项目。)
他们在 CI 中使用 Resharper CLI。所以我想让我的 Resharper 抛出同样的错误,这样我就可以快速定位并消除 C# 7.0 的特性。我的 Resharper 显示项目是干净的(除了一些小的 "it might be a problem but it's not for me" 东西),所以当我 运行 代码分析时,我没有致命错误甚至关于 C# 7.0 的警告。
到目前为止我看到的每个问题都是关于如何禁用 关于 C# 7.0 的警告。我的 Resharper 没有抛出任何警告或错误,而我们 CI 上的是。
我查看了所有选项,但找不到任何明显的 "C# 7.0" 选项。我一直在寻找类似 "maximum supported language/throw an error if language feature in later version is used/etc" 的东西,但我似乎找不到任何东西。
编辑: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...
您可以通过右键单击项目配置构建引擎为每个项目使用的 C# 版本,select Properties
,Select Build
部分,单击在 Advanced...
上,将 Language version
设置为您的 CI 服务器使用的任何版本。执行此操作后,当您在任何 C#7.0 功能上进行本地构建时,构建将失败。
或者您可以尝试将 CI 服务器升级为使用 C#7.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>