1

我正在尝试在一些 ASP.Net 应用程序上使用声纳。我已经安装了声纳并配置了 C# 环境,并且我得到了这个工作......除了 FXcop(代码分析)。

我遵循了官方文档

  • sonar-runner.bat 没问题
  • FXCop 路径配置良好
  • Sonnar-runner 正确启动 FXcop (12.0)
  • FXCop 在项目的.sonar 目录下构建“fxcop-report.xml”
  • 该文件包含一些我应该在 Sonarqube 中看到的“问题”
  • FXCop 退出 1024 代码,这对于声纳运行器来说似乎没问题
  • sonar-runner 执行似乎一直都很好:“ANALYSIS SUCCESSFUL”......然后“EXECUTION SUCCESS”

我的默认质量规则“仅”是 FXCop 规则。

但是当我连接到 sonarqube 时,我的项目默认设置为“0”。我的意思是,我真的希望有 0 个默认值,但这不是现实。

我一直在搜索,我在官方论坛上看到说报告中的问题元素应该具有“路径”和“文件”属性才能使其正常工作,我就是这种情况:

<Member Name="#TypeDeclar()" Kind="Method" Static="False" Accessibility="Private" ExternallyVisible="False">
       <Messages>
        <Message TypeName="Dispose objects before losing scope" Category="Microsoft.Reliability" CheckId="CA2000" Status="Active" Created="2015-01-19 13:37:17Z" FixCategory="DependsOnFix" BreaksBuild="True">
         <Issue Name="ExceptionEdge" Certainty="75" Level="Warning" Path="c:\Projects\ProjectA" File="WebEdition.ascx.cs" Line="71">In method 'WebEdition.TypeDeclar()', object 'sqlcmd' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'sqlcmd' before all references to it are out of scope.</Issue>
         <Issue Name="ExceptionEdge" Certainty="75" Level="Warning" Path="c:\Projects\ProjectA" File="WebEdition.ascx.cs" Line="69">In method 'WebEdition.TypeDeclar()', object 'sqlconn' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'sqlconn' before all references to it are out of scope.</Issue>
        </Message>
        <Message TypeName="Do not dispose objects multiple times" Category="Microsoft.Usage" CheckId="CA2202" Status="Active" Created="2015-01-19 13:37:17Z" FixCategory="DependsOnFix" BreaksBuild="True">
         <Issue Certainty="75" Level="Warning" Path="c:\Projects\ProjectA" File="WebEdition.ascx.cs" Line="92">Object 'sqlconn' can be disposed more than once in method 'WebEdition.TypeDeclar()'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 92</Issue>
        </Message>
       </Messages>

希望有人注意到我想念的东西!!!谢谢。

4

1 回答 1

2

我终于找到了问题:这是因为我的服务器上执行 Sonar 的代码源的绝对路径不等于我的开发计算机上的绝对路径:

开发计算机

C:\Projects\ProjectA....

服务器 :

C:\ContinuousIntegration\Dotnet\Projects\ProjectA....

Sonar 无法找到文件,因为它正在使用“dev”绝对路径进行查找。

我已经看到这个执行“sonar-runner -X”,并阅读了所有的日志......

希望它会帮助某人;)

于 2015-01-20T08:38:58.383 回答