我一直面临着新的MSBuildSonarRunner组件的问题。我正在使用它进行我的.net项目分析。最近,我在我的质量档案中激活了一些fxcop规则。当我对项目运行分析时,它显示错误 - “必须设置sonar.cs.fxcop.assembly”。
我正在使用Sonarqube 5.1.1&已安装Fxcop10.0。我已将SonarQube.Analysis.Xml文件和SET更改为两个属性。
sonar.cs.fxcop.fxCopCmdPath = C:\ Program Files(x86)\ Microsoft Fxcop 10.0 \ FxCopCmd.exe
sonar.fxcop.installDirectory = C:\ Program Files(x86)\ Microsoft Fxcop 10.0 \
我认为没有使用这些设置。我知道即使错误信息也没有谈论上述设置。
我必须给“sonar.cs.fxcop.assembly”什么值?我应该在哪里指定此设置 - 在配置文件中?还是.csproj文件?
我检查了[SO帖子@Dinesh] [1] How to use FxCop analysis with the new MsBuild Sonar runner? 在帖子中提到FXCOP是本机支持的。但它没有发生。
有没有人/解决这个问题?它已经停止了我们的声纳效益。
答案 0 :(得分:1)
我正在执行" msbuildsonarrunner"正常命令提示符下的命令(begin,msbuild,end)。使用MsBuild路径配置正常命令提示符(即C:\ Program Files(x86)\ MSBuild \ 12.0 \ Bin)。当我触发MsBuild命令时,Build正在进行No Fxcop Analysis。然后我用Visual Studio开发人员命令提示符检查了它。是的,Fxcop分析正在进行中。我进一步检查了解Visual Studio命令提示符的配置方式。在VS Developer命令提示符的属性中,我将Target视为["%comspec%/ k"" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ VsDevCmd。蝙蝠"" ]。
然后我切换回正常的命令提示符并触发以下命令。 CALL" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ VsDevCmd.bat"。然后它开始表现为VS开发人员命令提示符(但很明显)。当我解雇MsBuild Command时,它启动了Fxcop分析。
我的虚拟项目的MsBuild命令日志如下所示。我在我的质量档案中包含了CA1823 fxcop规则。您可以在构建日志(粗体)中看到警告,因为我故意违反它。
Microsoft(R)Build Engine版本12.0.21005.1 [Microsoft .NET Framework,版本4.0.30319.34209] 版权所有(C)Microsoft Corporation。保留所有权利。
Build于2015年10月13日下午12:20:14开始。 项目" D:\ SonarQubeProjects \ Fibanocci \ Fibanocci \ Fibanocci.csproj"在节点1上(默认目标)。 GenerateTargetFrameworkMonikerAttribute: 跳过目标" GenerateTargetFrameworkMonikerAttribute"因为所有输出文件都是与输入文件相关的最新文件。 CoreCompile: 跳过目标" CoreCompile"因为所有输出文件都是与输入文件相关的最新文件。 _CopyAppConfigFile: 跳过目标" _CopyAppConfigFile"因为所有输出文件都是与输入文件相关的最新文件。 CopyFilesToOutputDirectory: Fibanocci - > d:\ SonarQubeProjects \ Fibanocci \ Fibanocci \ BIN \调试\ Fibanocci.exe OverrideCodeAnalysisProperties: 使用SonarQube规则集运行FxCop分析。规则集:D:\ SonarQubeProjects \ Fibanocci \ Fibanocci.sonarqube \ conf \ SonarQubeFxCop-cs.ruleset RunCodeAnalysis: 运行代码分析...... C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Team Tools \ Static Analysis Tools \ FxCop \ FxCopCmd.exe / outputCulture:1033 /out:"bin\Debug\Fibanocci.exe.CodeAnalysisLog.xml" ; /file:"bin\Debug\Fibanocci.exe" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Microsoft.CSharp.dll" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ mscorlib.dll" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ System.Core.dll" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ System.Data.DataSetExtensions.dll" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ System.Data.dll" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ System.dll" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ System.Xml.dll" / reference:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ System.Xml.Linq.dll" / directory:" C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1" /ruleSet:"=D:\SonarQubeProjects\Fibanocci\Fibanocci.sonarqube\conf\SonarQubeFxCop-cs.ruleset" / rulesetdirectory:" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Team Tools \ Static Analysis Tools \ Rule Sets" / rule:" -C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Team Tools \ Static Analysis Tools \ FxCop \ Rules" / searchgac / ignoreinvalidtargets / forceoutput / successfile / ignoregeneratedcode / saveMessagesToReport:活动/超时:120 MSBUILD:警告CA1823:Microsoft.Performance:看来该字段' Program.obj'永远不会被使用或只被分配给。使用此字段或将其删除。 [D:\ SonarQubeProjects \ Fibanocci \ Fibanocci \ Fibanocci.csproj] 代码分析完成 - 0个错误,1个警告 SetStyleCopAnalysisSettings: 设置' sonar.stylecop.projectFilePath'到' D:\ SonarQubeProjects \ Fibanocci \ Fibanocci \ Fibanocci.csproj' WriteSonarQubeProjectData: 目录" D:\ SonarQubeProjects \ Fibanocci \ Fibanocci.sonarqube \ out \ Fibanocci__AnyCPU_Debug_635803356164104589"不存在。跳绳。 创建目录" D:\ SonarQubeProjects \ Fibanocci \ Fibanocci.sonarqube \ out \ Fibanocci__AnyCPU_Debug_635803356164104589"。 完成建筑项目" D:\ SonarQubeProjects \ Fibanocci \ Fibanocci \ Fibanocci.csproj" (默认目标)。
构建成功。
" d:\ SonarQubeProjects \ Fibanocci \ Fibanocci \ Fibanocci.csproj" (默认目标)(1) - > (RunCodeAnalysis目标) - > MSBUILD:警告CA1823:Microsoft.Performance:看来该字段' Program.obj'永远不会被使用或只被分配给。使用此字段或将其删除。 [d:\ SonarQubeProjects \ Fibanocci \ Fibanocci \ Fibanocci.csproj]
1 Warning(s)
0 Error(s)
时间流逝00:00:01.82
有效!!!但让我陷入了另一个问题。这些问题没有发布到Sonar服务器。 DashBoard显示0个问题,但我在分析结果中看到了Fxcop警告。