Add Sonar Support for .NET Project in Jenkins

My project is a .NET project, being built on running Jenkins. I would like to use Sonar to analyze this project to improve code quality.

Here are the steps to setup Sonar for .NET project:

  1. Download Sonar zip file, unzip and run bin/StartSonar.bat (on Windows 2008), then Sonar could be accessed from: http://localhost:9000
  2. Download and install(copy to Sonar plugins folder) .NET plugins for Sonar, http://docs.codehaus.org/display/SONAR/C-Sharp+Plugins+Ecosystem
  3. Install bunch tools for code quality: Gallio, FXCop, PartCover, Source Monitor, NDeps, according to http://choudhury.com/blog/2011/06/12/using-sonar-for-your-net-project/
  4. Download sonar runner, for future use.
  5. Download maven for future use.
  6. For 64-bit OS, use forFlags.exe to patch PartCover.exe and Gallio.Echo.exe, which are 32-bit, according to http://choudhury.com/blog/2011/06/12/using-sonar-for-your-net-project/
  7. Compile .NET solution/project under Debug but not Trunk, which are required by NDeps.
  8. Take following either way to analyze project:
    1. add sonar-project.properties under same folder with sln file, and add key ‘sonar.fxcop.installDirectory‘ with value of real FXCop installation in case console throws error. Do same thing for NDeps, as ‘sonar.ndeps.installDirectory
    2. add pom.xml, according to http://svn.codehaus.org/sonar-plugins/trunk/dotnet/tools/dotnet-tools-commons/src/test/resources/solution/Example/, and run ‘mvn clean install -Psonar-dotnet sonar:sonar
  9. Go to http://localhost:9000 to check Sonar report.

Add Sonar plugin in Jekins job – TBD

Share