在Visual Studio 2019预览版4中使用常见的.editorconfig文件(在csproj中导入)的问题

雨果·昆泰拉·里贝罗

我想简化代码分析,并在多个项目和团队中使用重复的规则。

我们曾经通过拥有一个将分析器导入项目(例如Microsoft.CodeAnalysis.FxCopAnalyzers和StyleCop.Analyzers)的NuGet程序包来做到这一点,并定义了一个规则集来定义VS如何处理每个规则(错误,警告等)。

我一直在尝试使用通用的.editorconfig文件而不是规则集进行设置。问题是,当从共享文件夹导入.editorconfig文件时,似乎会忽略以下设置。

dotnet_diagnostic.CA1062.severity = error

为了测试这一点,我有一个非常简单的场景来说明问题。

.editorconfig文件如下:

[*.cs]
dotnet_diagnostic.CA1062.severity = error
#dotnet_code_quality.null_check_validation_methods = NotNull

现在,此文件将像这样导入csproj中:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
    </PropertyGroup>
    <Import Project="..\..\_Shared\Build.props" />
    <ItemGroup>
        <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.4">
            <PrivateAssets>All</PrivateAssets>
        </PackageReference>
    </ItemGroup>
</Project>

Build.props是这样的:

<Project>
    <PropertyGroup>
    <SkipDefaultEditorConfigAsAdditionalFile>true</SkipDefaultEditorConfigAsAdditionalFile>
    </PropertyGroup>
    <ItemGroup Condition="Exists('$(MSBuildThisFileDirectory)\.editorconfig')" >
        <AdditionalFiles Include="$(MSBuildThisFileDirectory)\.editorconfig" />
    </ItemGroup>
</Project>

以下代码应在CA1062上触发错误:

public int Calculate(InputData input)
{
    SmartGuard.NotNull(nameof(input), input);
    if (this.Multiply)
    {
        return input.Value * 2;
    }
    else
    {
        return input.Value + 2;
    }
}

但是结果是警告:

错误清单

现在,如果我更改.editorconfig并取消注释第二行:

[*.cs]
dotnet_diagnostic.CA1062.severity = error
dotnet_code_quality.null_check_validation_methods = NotNull

错误正在发生,这意味着null_check_validation_methods正在考虑该错误

为什么dotnet_diagnostic.CA1062.severity = error被忽略?

雨果·昆泰拉·里贝罗

.editorconfig机制的此问题和其他问题在以下问题中进行了报告:

这些问题已经解决,并且通过实施这些问题中引用的建议可以解决原始问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2019中启用c ++ 20(16.3预览版4)

Visual Studio 2019预览版远程调试器

Blazor .NET Core 3预览版编译错误-Visual Studio 2019预览版

功能递归模式当前在Visual Studio 2019预览版中

Visual Studio 2019 预览版中的逻辑应用和函数应用开发

Visual Studio 2019预览版和Visual Studio 2019 RC有什么区别?

Visual Studio“ 15”预览版卸载

Visual Studio Ultimate预览版2013

csproj文件Visual Studio中的重复文件

适用于 Visual Studio 的 Azure 流分析工具 2019 预览版

在Visual Studio 2019中编辑.csproj文件是否安全?

如何在 Visual Studio 2019 中使用 editorconfig?

将Visual Studio 2017更新为预览版

Visual Studio Enterprise 2017预览版15.7中的ASP.NET Core 2.1

Visual Studio 2013预览版中不再有Windows应用商店应用

如何在Visual Studio 2015中安装XNA(预览版)

Visual Studio 2015预览版中缺少报告模板

Visual Studio 未在非项目文件中导入简单图像

更改.csproj文件中的MS Visual Studio构建设置

Visual Studio代码的editorconfig

Visual Studio中的缩放问题

Visual Studio 2019中的Cherry Pick问题

如何为所有解决方案将EditorConfig文件导入Visual Studio?

无法在 Visual Studio 2019 中打开文件

在Visual Studio 2019中保存项目文件会还原csproj文件中的更改

无法在Visual Studio中使用<文件系统>

未解决的导入烧瓶 Visual Studio 2019

如何在Visual Studio 2019中使用.NET 4.6.2版运行单元测试?

安装Visual Studio 2012发行预览版后出现错误“链接:致命错误LNK1123:转换为COFF期间失败:文件无效或损坏”