亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SonarScanner (C#) 不支持代碼內 StyleCop 警告抑制

SonarScanner (C#) 不支持代碼內 StyleCop 警告抑制

C#
守著一只汪 2023-07-09 16:40:43
我正在嘗試使用 SonarQube 為我的組織進行靜態代碼分析。我們所有的 C# 項目都已經啟用了 StyleCop,這在代碼可讀性方面對我們幫助很大。現在我們想利用 SonarQube 進行靜態代碼分析。當代碼中沒有警告抑制時,我能夠成功運行分析并生成聲納報告。問題:Sonarqube 不考慮代碼內警告抑制,并且 msbuild 失敗。我創建了一個示例 C# 控制臺應用程序項目來演示我面臨的問題。StyleCop 已啟用(已安裝 nuget:StyleCop.Analyzers v1.1.118)并且警告將轉換為錯誤。以下是規則集的片段.........<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">......<Rule Id="SA1307" Action="Error" />......該項目有以下文件: 1. Program.cs// <copyright file="Program.cs" company="PlaceholderCompany">// Copyright (c) PlaceholderCompany. All rights reserved.// </copyright>namespace StyleCopSonarQubeIssue{? ? /// <summary>? ? /// The program class.? ? /// </summary>? ? internal class Program? ? {? ? ? ? /// <summary>? ? ? ? /// Defines the entry point of the application.? ? ? ? /// </summary>? ? ? ? /// <param name="args">The arguments.</param>? ? ? ? public static void Main(string[] args)? ? ? ? {? ? ? ? ? ? // Method intentionally left empty.? ? ? ? }? ? }}系統信息.cs// <copyright file="SystemInfo.cs" company="PlaceholderCompany">// Copyright (c) PlaceholderCompany. All rights reserved.// </copyright>namespace StyleCopSonarQubeIssue{? ? using System.Runtime.InteropServices;? ? /// <summary>? ? /// The sytem info enum.? ? /// </summary>? ? [StructLayout(LayoutKind.Sequential)]? ? public struct SystemInfo? ? {? ? ? ? /// <summary>? ? ? ? /// Oem Id.? ? ? ? /// </summary>? ? ? ? public uint dwOemId;? ? ? ? /// <summary>? ? ? ? /// Page size.? ? ? ? /// </summary>? ? ? ? public uint dwPageSize;? ? }}
查看完整描述

1 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

看起來像編譯器錯誤。

該錯誤在于,在某些情況下,要求編譯器將分析問題寫入文件會阻止編譯器生成 .dll/.exe 文件。但是,編譯器也不會發出任何錯誤。當 MSBuild 嘗試復制不存在的文件時,構建會在后續步驟中失敗。

您可以通過執行以下操作來檢查您是否受到此錯誤的影響:

  1. 禁用 SonarQube/SonarCloud 分析步驟。

  2. 執行構建并檢查它是否成功完成

  3. 現在,在 MSBuild 步驟中添加以下 MSBuild 參數:/p:ErrorLog=RoslynIssues.json然后檢查構建是否仍成功完成。

如果 (2) 成功但 (3) 失敗,那么您就會受到編譯器錯誤的影響。

變通方法/解決方案:該錯誤已在 MSBuild 16.1 中修復,因此修復方法是升級到最新版本的編譯器。如果這不可能,則可以選擇通過編輯規則集將所引發問題的嚴重性從“錯誤”更改為“警告”。


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 199 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號