簡體   English   中英

.NET 6 代碼分析器 CodeAnalysisTreatWarningsAsErrors 中斷

[英].NET 6 Code analyzer CodeAnalysisTreatWarningsAsErrors breaking

我們正在嘗試在我們的 .NET 472 項目上啟用 .NET 6 代碼分析器。 在大多數項目中,我們將 WarningsAsErrors 設置為 true。 我們不希望 CA 警告報告為錯誤,因此我們將 CodeAnalysisTreatWarningsAsErrors 添加為 false。

這樣做時,不再報告所有 CA 警告

我們現在使用以下設置

  <PropertyGroup> 
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <EnableNETAnalyzers>true</EnableNETAnalyzers>
    <AnalysisLevel>latest-recommended</AnalysisLevel>
    <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
    <WarningsNotAsErrors>$(WarningsNotAsErrors);CS8073;CS8882;CS8887;CS8848</WarningsNotAsErrors>
  </PropertyGroup>

沒有設置,我們有 0 個警告。 使用這些設置,只會觸發一些額外的 CS 警告,即我們必須在 WarningsNotAsErrors 中添加的警告

如果我刪除 CodeAnalysisTreatWarningsAsErrors 屬性並將 TreatWarningsAsErrors 設置為 false,我會在我們的代碼庫中收到 1700 條 CA 警告。 我希望看到這些 1700 條帶有上述設置的警告。 當我將 CodeAnalysisTreatWarningsAsErrors 設置為 true 時,出現 1700 個錯誤。

我在我的 global.json 文件中使用它

{
    "sdk": {
        "version": "6.0.300",
        "rollForward": "latestFeature"
    }
}

並安裝了 sdk 的 6.0.300 和 6.0.401,以及 VS 17.2

為什么 CodeAnalysisTreatWarningsAsErrors 會破壞我們的代碼分析掃描? 任何意見將是有益的。

編輯:添加圖像在此處輸入圖像描述

在此處輸入圖像描述

VS 表明它想將它們視為警告: 在此處輸入圖像描述

我將TreatWarningsAsErrorsCodeAnalysisTreatWarningsAsErrors設置為truefalse以進行組合測試。 下面是幾個測試結果。

情況一

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>

這將返回所有 CS 錯誤。

情況二

<TreatWarningsAsErrors>false </TreatWarningsAsErrors>

這將返回所有 CS 警告。

情況三

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>

情況4

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>

3 和 4 都返回 CS 和 CA 錯誤。 在此處輸入圖像描述

情況五

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<CodeAnalysisTreatWarningsAsErrors>false </CodeAnalysisTreatWarningsAsErrors>

這將返回 CS 錯誤和 CA 警告。 在此處輸入圖像描述

情況 6

<TreatWarningsAsErrors>false </TreatWarningsAsErrors>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors> (Or it can be removed)

這將返回 CA 和 CS 警告。 在此處輸入圖像描述

從你的描述來看,

我希望看到這些 1700 條帶有上述設置的警告。

我的理解是,如果你想看到warnings,你可以按照情況6進行。恐怕你用上面的設置也看不到這1700個warnings。

<TreatWarningsAsErrors>true</TreatWarningsAsErrors> <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>)

但我不確定你最后一段的問題是什么。 如果有任何誤解,請隨時告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM