SonarQube 5.4でMSBuild 2.0用のSonarQubeスキャナーを使用しています。 Rosarn Wintellect.Analyzers NuGetパッケージのSonarQubeプラグインをSonarQubeサーバーに追加し、SonarQubeプロジェクトが使用する品質プロファイルにルールを追加しました。 C#のソースコードでは、#pragmaを使用して "Wintellect003"ルールを無効にしています(そして、SuppressMessage属性をインラインで、次にGlobalSuppressions.csで試しました)。 Visual Studio 2015とmsbuild 14ではルールは正常に無効になっていますが、SonarQubeはルールを無効にしていません(SonarQubeまたはルールセットでルールを無効にしていません)。SonarQubeはisSuppressedInSourceを無視していますか?
私はので、「終わり」フェーズでMsBuild.SonarQube.Runner.exeは抑制を認識していることがわかりますが、それはSonarQubeに送信するRoslynCA.jsonファイルを生成し、それは次のセクションが含まれています -
"ruleId": "Wintellect003",
"kind": "warning",
"locations": [
{
"analysisTarget": [
{
"uri": "file:\/\/\/C:\/CS5Tests/Mycode.cs",
"region": {
"startLine": 920,
"startColumn": 17,
"endLine": 923,
"endColumn": 118
}
}
]
}
],
"shortMessage": "'if' statements must have braces",
"fullMessage": "If and else statements must use braces even for single line results",
"isSuppressedInSource": true,
「isSuppressedInSource」がtrueであることがわかります。残念ながらSonarQubeはこの設定を尊重していません。何か案は?
(私はSonarQubeサーバーを停止し、キャッシュをクリアしてSonarQubeサーバーを再起動するためにデータ\ esフォルダを削除しようとしましたが、これは役に立ちませんでした)。
マイクさん、C#プラグインを5.2 RC1にアップグレードすると、実際に私の問題が解決されます。 –
問題ありません。喜んで助けてください。あなたが気にしないなら、この回答に合格とマークしてください。 –