C# 声纳的默认目录布局

C# 声纳的默认目录布局,c#,plugins,sonarqube,C#,Plugins,Sonarqube,我准备了声纳来分析我的C#项目。我安装了sonar和sonar runner,还配置了C#插件(.NET Core、C#Core、FxCop、Gendarme、Gallio、OpenCover和StyleCop) 到目前为止一切正常。在声纳中,我看到了我的代码统计数据(LOC等),也看到了代码冲突。没有代码覆盖,但这没关系,因为我没有任何测试 问题是,我只看到有关Stylecop的违规行为,所以它只显示了一些代码风格的问题。但我确信我的应用程序还必须有其他应该被FxCop和其他插件检测到的违规行

我准备了声纳来分析我的C#项目。我安装了sonar和sonar runner,还配置了C#插件(.NET Core、C#Core、FxCop、Gendarme、Gallio、OpenCover和StyleCop)

到目前为止一切正常。在声纳中,我看到了我的代码统计数据(LOC等),也看到了代码冲突。没有代码覆盖,但这没关系,因为我没有任何测试

问题是,我只看到有关Stylecop的违规行为,所以它只显示了一些代码风格的问题。但我确信我的应用程序还必须有其他应该被FxCop和其他插件检测到的违规行为

在这张图片中,我们可以看到它显示了StyleCop的一个违规行为。我所有的违规行为都来自StyleCop

我在书中读到,分析可能会成功,但发现的违规行为太少,可能是因为攻击方向错误。 我给你看我的sonar-runner.properties,也许这就是我问题的原因:

#----- Default Sonar server
#sonar.host.url=http://localhost:9000

#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
#sonar.jdbc.driver=org.postgresql.Driver

#----- MySQL
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
#sonar.jdbc.driver=com.mysql.jdbc.Driver

#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
#sonar.jdbc.driver=oracle.jdbc.driver.OracleDriver

#----- Global database settings
#sonar.jdbc.username=sonar
#sonar.jdbc.password=sonar

#----- Default directory layout
sonar.sources=src
sonar.tests=src
sonar.binaries=src

#----- Default source code encoding
#sonar.sourceEncoding=UTF-8
我还想列出我的应用程序结构:

-->ProjectMainFolder
   -->Project.sln
   -->sonar-project.properties

   -->Project1Folder
       -->bin
       -->object
       -->Properties
       -->Project1.csproj
       -->Project1Main.cs

   -->Project2Folder
       -->bin
       -->object
       -->Properties
       -->Project2.csproj
       -->Project2Main.cs
那么问题又来了: 为什么我只看到StyleCop违规,而没有FxCop、宪兵等的违规

我还想添加sonar-project.properties:

# optional description
sonar.projectDescription=Project description

# Project identification  
sonar.projectKey=Vendor:Project
sonar.projectVersion= 1.0
sonar.projectName= Project 

# Info required for Sonar  
sources=.
sonar.language=cs
sonar.sourceEncoding=UTF-8

#Core C# Settings  
sonar.dotnet.visualstudio.solution.file=Project.sln
  • 首先,您不应该将特定于项目的设置放在sonar-runner.properties文件中,您应该在解决方案中创建一个“sonar project.properties”文件并将其保留在那里

  • 其次,在这个“sonar project.properties”文件中,“sonar.sources”应该设置为“.”,并且不应该有“sonar.tests”或“sonar.binaries”

所有这些都在中得到了很好的解释,并在中得到了应用。

  • 首先,您不应该将特定于项目的设置放在sonar-runner.properties文件中,您应该在解决方案中创建一个“sonar project.properties”文件并将其保留在那里

  • 其次,在这个“sonar project.properties”文件中,“sonar.sources”应该设置为“.”,并且不应该有“sonar.tests”或“sonar.binaries”


所有这些都在中得到了很好的解释,并在中得到了应用。

我刚刚找到了解决方案

法布里斯-声纳小组让我想到,FxCop和宪兵无法正常工作,因为他们没有攻击


我找到了灵魂。FxCop只是在Debug文件夹中搜索assassambles,因为我的assambles在release文件夹中,所以无法正常工作。所以我把它们改回Debug(或sonar.dotnet.buildConfigurations propery)来解决它

我刚刚找到了解决方案

法布里斯-声纳小组让我想到,FxCop和宪兵无法正常工作,因为他们没有攻击


我找到了灵魂。FxCop只是在Debug文件夹中搜索assassambles,因为我的assambles在release文件夹中,所以无法正常工作。因此,我将它们改回Debug(或sonar.dotnet.buildConfigurations propery)以解决它。

1:在分析之前,我已在项目文件夹中编译了所有项目。2.:它们未被移动,它们位于每个项目的bin/release文件夹中。3.:解决方案文件夹也未移动。一切都处于其原始位置,因此如果我理解正确:sonar-runner.properties仅用于全局配置,而特定于项目的配置仅在sonar-project.properties中处理?我还添加了sonar-project.properties以查看是否有错误,因为我已经将源代码设置为“.”现在我尝试了您提到的C#-示例项目……在那里,我只能看到stylecop和csharpsquid违规,但不能看到fxcop和宪兵违规,这在该示例项目的源代码中有所说明。设置一定有问题,但我不知道是什么原因仔细查看日志并搜索“FxCop”或“Gendarme”:您应该会找到一些提示。很明显,“未生成的程序集”意味着您尚未编译该项目。。。所以我的第一个猜测是对的。1:在分析之前,我已经在项目文件夹中编译了我的所有项目。2.:它们未被移动,它们位于每个项目的bin/release文件夹中。3.:解决方案文件夹也未移动。一切都处于其原始位置,因此如果我理解正确:sonar-runner.properties仅用于全局配置,而特定于项目的配置仅在sonar-project.properties中处理?我还添加了sonar-project.properties以查看是否有错误,因为我已经将源代码设置为“.”现在我尝试了您提到的C#-示例项目……在那里,我只能看到stylecop和csharpsquid违规,但不能看到fxcop和宪兵违规,这在该示例项目的源代码中有所说明。设置一定有问题,但我不知道是什么原因仔细查看日志并搜索“FxCop”或“Gendarme”:您应该会找到一些提示。很明显,“未生成的程序集”意味着您尚未编译该项目。。。所以我的第一个猜测是对的。