我正在尝试使用 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;
}
}
慕仙森
相关分类