.NET 6 StyleCop.Analyzers 忽略“documentationCulture”:“en-GB”

sgn*_*gon 3 .net c# stylecop roslyn-code-analysis

我使用 .NET 6 SDK (6.0.400),并且我有一个涉及StyleCop.Analyzersstylecop.json的最简单的项目:

类库1.csproj:

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

<ItemGroup>
    <AdditionalFiles Include="stylecop.json" Link="stylecop.json" />
</ItemGroup>

<ItemGroup>
  <PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

Class1.cs:

// <copyright file="Class1.cs" company="My Company">
// Copyright (c) My Company. All rights reserved.
// </copyright>

namespace ClassLibrary1;

/// <summary>
/// Comment.
/// </summary>
public class Class1
{
    /// <summary>
    /// Initialises a new instance of the <see cref="Class1"/> class.
    /// Comment.
    /// </summary>
    public Class1()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

stylecop.json:

 {
  "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
  "settings": {
    "documentationRules": {
      "companyName": "My Company",
      "documentationCulture": "en-GB"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编译时,IDE(VS、Rider)和 CLI 报告以下警告:

警告 SA1642:构造函数摘要文档应以标准文本开头

请注意,我在stylecop.json中有明确的"documentationCulture": "en-GB",并且Class1构造函数在注释中具有“ Initiali s es ”一词,这对于“en-GB”文化是正确的。但 StyleCop 希望我将此单词更改为“en-US”文化的默认“Initiali z es”单词,因此忽略DocumentationCulture参数值。

我发现这个问题几年前就在 GitHub 上的各种主题上存在,但我在任何地方都找不到真正有效的解决方案。