[英].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 會破壞我們的代碼分析掃描? 任何意見將是有益的。
我將TreatWarningsAsErrors
和CodeAnalysisTreatWarningsAsErrors
設置為true
或false
以進行組合測試。 下面是幾個測試結果。
情況一
<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>
情況五
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<CodeAnalysisTreatWarningsAsErrors>false </CodeAnalysisTreatWarningsAsErrors>
情況 6
<TreatWarningsAsErrors>false </TreatWarningsAsErrors>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors> (Or it can be removed)
從你的描述來看,
我希望看到這些 1700 條帶有上述設置的警告。
我的理解是,如果你想看到warnings,你可以按照情況6進行。恐怕你用上面的設置也看不到這1700個warnings。
<TreatWarningsAsErrors>true</TreatWarningsAsErrors> <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>)
但我不確定你最后一段的問題是什么。 如果有任何誤解,請隨時告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.