我在一个目前使用VS2013的团队中,所以我的安装是MSBuild12。 我安装了FXCop10。 我安装了MSBuild14。 我安装了SonarQube Scanner for MSBuild 2.1。
我在演示模式下运行SonarQube 5.6版。 我已启用所有规则,并可使用以下批处理脚本进行分析:
<!-- language: lang-sh-->
@echo off
REM Set FxCop10Directory="C:\Program Files (x86)\Microsoft Fxcop 10.0\"
REM Set FxCop10="C:\Program Files (x86)\Microsoft Fxcop 10.0\FxCopCmd.exe"
Set ScannerDirectory="D:\Programs\sonar-scanner-2.6.1\bin\"
Set MSBuild12="C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
Set MSBuild14="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe"
Set Runner="MSBuild.SonarQube.Runner.exe"
Set Key="DEMO2016"
Set Name="SonarQube Internal Demo"
Set Version="0.0.0.0"
PATH=%PATH%;%ScannerDirectory%
call %Runner% begin /k:%Key% /n:%Name% /v:%Version%
call %MSBuild14% /t:Rebuild
call %Runner% end
pause
当我尝试通过更改调用%MSBuild14% /t:Rebuild
的调用来升级到MSBuild14时,出现错误。
error : FxCop must be installed when some of its rules are enabled in the SonarQube quality profile. FxCop is included as part of Visual Studio.
VS2013附带另一版FXCop。
如何控制MSBuild.SonarQube.Runner
使用的版本?
如何为MSBuild.SonarQube.Runner
设置FxCop10?
答案 0 :(得分:0)
我不知道为什么MSBuild12最初为我工作。 我必须导入开发环境才能使系统正常工作。
<!-- language: none-->
@echo off
echo.
echo Setup References
Set ScannerDirectory="D:\Programs\sonar-scanner-2.6.1\bin\"
Set MSBuild14="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe"
Set Runner="MSBuild.SonarQube.Runner.exe"
Set vcvars="C:\LegacyApp\VisualStudio2013\VC\vcvarsall.bat"
echo.
echo Setup Runner Parameters
Set Key="DEMO2016"
Set Name="SonarQube Internal Demo"
Set Version="0.0.0.0"
echo.
echo Create Environment
PATH=%PATH%;%ScannerDirectory%
call %vcvars%
echo.
echo Runner Begin
call %Runner% begin /k:%Key% /n:%Name% /v:%Version%
echo.
echo MSBuild Rebuild
call %MSBuild14% /t:Rebuild
echo.
echo Runner End
call %Runner% end
pause
输出显示当前使用的FxCop版本的位置:
<!-- language: none-->
Running Code Analysis...
C:\LegacyApp\VisualStudio2013\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe
在命令提示符中执行该文件将返回其版本。