【问题标题】:Enable all rules with .NET analyzers in .NET standard projects在 .NET 标准项目中使用 .NET 分析器启用所有规则
【发布时间】:2020-12-16 09:46:33
【问题描述】:

我正在使用 Rosyln 将我的项目移动到新的 .NET 分析器,之前我使用的是 nuget 包。 我正在尝试执行此处描述的过程: Migrate from FxCop analyzers to .NET analyzers

现在我的 csproj 看起来像:

<Project>
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <EnableNETAnalyzers>true</EnableNETAnalyzers>
    <AnalysisMode>AllEnabledByDefault</AnalysisMode>
  </PropertyGroup>
</Project>

如果TargetFrameworknet5.0,所有规则都会返回错误,但是当它设置为netstandard2.0 时我无法使其工作。 我无法移动到 net5.0,因为这个 dll 被 .NET 4.8 项目引用。

【问题讨论】:

  • netstandard2.0 项目有什么问题?您是否看到警告但它们没有变成错误?还是您根本没有看到警告?
  • 添加&lt;AnalysisLevel&gt;5&lt;/AnalysisLevel&gt; 以使用更严格的基线:devblogs.microsoft.com/dotnet/…
  • @MartinCostello 非常感谢,添加&lt;AnalysisLevel&gt;5&lt;/AnalysisLevel&gt; 解决了这个问题。
  • @PDufrene 这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以接受它作为答案,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。

标签: c#


【解决方案1】:

如果您将&lt;AnalysisLevel&gt;5&lt;/AnalysisLevel&gt; 添加到您的项目文件中,您可以指示不以.NET 5.0 为目标的项目使用与以net5.0 为目标的项目默认使用相同的默认规则。

您可以找到有关此here 的更多信息。

【讨论】:

    【解决方案2】:

    由于迁移到 .Net 5 不是一个选项(分析器会自动启用),我建议使用执行分析的 nuget 包Microsoft.CodeAnalysis.CSharp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多