コマンド ラインからのコード分析の実行

MSBuild を使用して、コマンド ラインからコード分析を実行できます。

Enterprise Developer では、プロジェクトがビルドを終了したときに MSBuild ユーティリティを使用してコード分析を実行できます。MSBuild コマンド ラインでは、多数のスイッチおよびパラメーターを使用してその動作を調整できます。

コマンド ラインからコード分析を構成および実行するには、次の 2 つの方法があります。

  • MSBuild を実行し、プロジェクトのプロパティで指定した設定を使用してコード分析を実行します。
  • プロジェクト レベルで設定したプロパティとは異なるコード分析のコマンド ライン オプションで MSBuild を実行します。

    たとえば、/p:RunMicroFocusCodeAnalysisAfterBuild=true で MSBuild を実行すると、コード分析がプロジェクトのプロパティで有効になっているかどうかに関係なくビルドの後にコード分析を実行することが指定されます。

    また、/p:ActiveRulesets="Coding Standards" で MSBuild を実行すると、IDE で有効にしたコーディング標準ルール セットのルールが使用されます。

    これらのコマンド ライン パラメーターを使用すると、IDE を使用してプロジェクトをビルドする方法を変更せずにコマンド ラインでコード分析ジョブを作成および実行できます。

プロジェクトをビルドし、コマンド ラインから MSBuild を使用してコード分析を実行するには、次の手順を実行します。

  1. コマンド ラインからコード分析のプロジェクトの設定を使用する場合、IDE でプロジェクトを開き、コード分析用に構成します。
  2. Visual Studio コマンド プロンプトを起動し、MSBuild コマンドを実行してプロジェクトをビルドします。
    msbuild [path]MyProject.cblproj [Code-analysis-parameters]

    コード分析の実行に任意のパラメーターを指定した場合、MSBuild はビルドの完了後にコード分析を実行します。コード分析の出力は、ビルドからのメッセージの後、コマンド ライン ウィンドウに表示されます。

MSBuild コマンドの構文

コマンド ラインからコード分析を実行するには、MSBuild コマンドを実行してコード分析のパラメーターを指定します。

msbuild [path]MyProject.cblproj [Code-analysis-parameters]

Code-analysis-parameters を指定しない場合、MSBuild は IDE で指定したコード分析の設定とプロジェクトのプロパティで指定したコード分析の設定を使用します。

MSBuild は、コマンド ラインでさまざまなスイッチおよびパラメーターをサポートしています。コード分析を使用するためのスイッチは/p で、次の構文を使用して各種プロパティを指定できます。

msbuild [path]MyProject.cblproj /p:property1=value1;property2=value2;...

または

msbuild [path]MyProject.cblproj /p:property1=value1 /p:property2=value2...

次に例を示します。

msbuild Myproject.cblproj /p:CodeAnalysisResultsAsErrors=true;RunMicroFocusCodeAnalysisAfterBuild=true;ActiveRulesets="Coding Standards"

MSBuild のコード分析プロパティ

Enterprise Developer には、MSBuild の/p スイッチとともに使用する次のコード分析プロパティが用意されています。

RunMicroFocusCodeAnalysisAfterBuild=[false|true]
コマンド ラインから MSBuild を使用して実行したビルドの終わりにコード分析を実行するかどうかを指定します。

このプロパティを指定しない場合、MSBuild はプロジェクトのプロパティで設定したコード分析プロパティを使用します。コード分析がプロジェクトで有効になっていない場合、MSBuild はビルドのみを実行し、プロジェクトの分析は実行しません。

このプロパティを指定すると、IDE で設定したコード分析プロパティはすべて無視されます。これにより、IDE 内からのビルドの実行時にコードが構成される方法とは異なるコマンド ライン固有のコード分析ジョブを実行することができます。サポートされているオプションは次のとおりです。

true
MSBuild は、プロジェクトのプロパティでコード分析が有効になっているかどうかに関係なくビルドの終わりにコード分析を実行します。
false
MSBuild は、プロジェクトのプロパティでコード分析が有効になっているかどうかに関係なく、コード分析を実行せずにプロジェクトのビルドのみを行います。
ActiveRulesets=[Ruleset1;Ruleset2;…]
コマンド ラインからコード分析を実行するときに使用する製品とともにインストールされる、またはその製品にインポートされるルール セットを指定します。これにより、IDE のルール セットに対して有効なルールのみが実行されます。

次に例を示します。

/p:ActiveRulesets="Coding Standards;Within Entire Program"
CodeAnalysisResultsAsErrors=[false|true]
コード分析で警告またはエラーを生成するかどうかを指定します。デフォルト値は false です。

コード分析の実行時に Microsoft 独自の MSBuild スイッチおよびプロパティを使用できます。たとえば、次のように /maxcpucount スイッチを使用できます。

/maxcpucount:n
n を 1 を超える値に設定すると、n 個のプロジェクトのビルドおよび分析を並列で実行できます。各プロジェクトの分析結果は、他のプロジェクトの結果とともにコマンド ライン ウィンドウに表示されます。
注記: ビルド プロセスを最適化するために、並列プロジェクト ビルドの最大数が自動的にコンピューターの CPU 数に設定されます。最大数は 32 です。

/p スイッチとともに使用できる Microsoft プロパティの一部を次に示します。

TreatWarningsAsErrors=[false|true]
これをtrueに設定すると、コード分析時にレポートされた問題により、実行が失敗します。その後、メッセージ "Build Failed" が表示されます。
ContinueOnError=value
ここでは、valueWarnAndContinueErrorAndContinue またはErrorAndStop.

たとえば、これをErrorAndStop に設定すると、コード分析時に発生したエラー (内部エラーによる分析の失敗) またはエラーとしてレポートされた分析結果 (TreatWarningsAsErrorsを参照) により、実行が停止します。

コマンド ラインからの MSBuild の使用に関する詳細は、Visual Studio のヘルプを参照してください。

コード分析ジョブからの結果

コマンド ラインからのコード分析結果は、すべてのビルド メッセージとともにコマンド プロンプト ウィンドウに表示されます。

メッセージは、次の書式で構成されています。

[ファイル名およびフル パス] [ファイル内の場所 (開始業, 列, 終了業, 列)] : [エラー メッセージ (エラー/警告 + 出力コード)] : [ルール セット名] : [ルール] : [その場所が参照しているコード スニペット]

次に例を示します。

C:\Tutorials\Projects\MyProject\MyProgram.cbl (14,8,14,33): warning MFCA0001 : Within Entire Program : Dead Statements : display "Some Message"