C-sharp build specification (ビルドスペック) の作成

Klocwork はビルドと統合し、コードストリーム全体の一元表示に必要なすべての情報をキャプチャします。

Klocwork は、この情報を構造化されたビルドログである build specification (ビルドスペック) というテキストファイルに保存します。build specification (ビルドスペック) は Klocwork 解析の基盤です。

build specification (ビルドスペック) がビルドの正確かつ最新の情報を表していることは重要です。build specification (ビルドスペック) が不正確な場合、Klocwork 解析も不正確になります。

build specification (ビルドスペック) は統合ビルドとローカルビルドの両方のレベルで必要です。

  • 統合ビルドの場合、build specification (ビルドスペック) の作成はインストール後に必要な最初のタスクです。
  • 一部のデスクトップ環境ではビルド統合は自動的に発生しますが、その他の環境では build specification (ビルドスペック) を手動で作成する必要があります。build specification (ビルドスペック) を手動で作成する必要があるかどうかが不明な場合は、Klocwork Desktop Analysis を使用したチェックイン前の指摘の修正でコーディング環境を選択してください。

前提条件

build specification (ビルドスペック) を作成するには、その前にサーバーパッケージまたはユーザーパッケージをインストールする必要があります。Klocwork のインストール を参照してください。

ビルド設定をキャプチャする

クイックリファレンスとして、当社のチートシート C# 統合ビルド解析 - チートシートをチェックすることもできます。

この例では、オープンソースプロジェクト NAnt のバージョン 0.85 を使用します。独自のソースコードを使用している場合、NAnt に固有な情報を自分の情報に置き換えてください。

C# プロジェクト用のビルドスペックを生成するために推奨される方法は、非増分モードで kwinject を使用することです。Klocwork 2021.1 以降、増分解析もサポートされています。

Important: ビルドする前にプロジェクトがクリーンであることを確認してください。さもないと、kwinject がすべてのビルドコマンドをキャプチャしません。

または、--overwrite オプションも含める場合は、次の例のように、/t:Rebuild オプションを指定して msbuild を呼び出すこともできます。

kwinject --overwrite msbuild Project.sln /t:Rebuild /p:UseSharedCompilation=false /p:ProduceReferenceAssembly=false

msbuild オプション /p:UseSharedCompilation=false/p:ProduceReferenceAssembly=false の両方が必要です。さもないと、解析は不正確になります。

同様に、.NET Core プロジェクトのビルド仕様を生成するには、次を行います。

kwinject dotnet msbuild Project.sln /p:UseSharedCompilation=false /p:ProduceReferenceAssembly=false

msbuild の代わりに devenv を使用している場合は、次の例のように、環境変数を介して UseSharedCompilation オプションと ProduceReferenceAssembly オプションを渡すことができます。

set UseSharedCompilation=false
set ProduceReferenceAssembly=false
kwinject -w devenv Project.sln /Rebuild
Cake プロジェクト (C# Make) では、Cake API の UseSharedCompilation パラメータ (または ProduceReferenceAssembly) に特定の設定はありませんが、次のように指定できます。
.WithProperty("UseSharedCompilation", "false")

正確性を確認するための build specification (ビルドスペック) のレビュー

build specification (ビルドスペック) が作成されたら、以下を行ってください。

  • cscompilecslinkcsconfig の各行が存在することを確認します。
  • the build specification (ビルドスペック) を注意深くレビューして、コンパイラオプションが適切に処理されたことを確認します。kwinject が正確にビルド設定をキャプチャしたかどうかを確認するための詳細情報については、「C# プロジェクトのビルドスペックファイルの形式」を参照してください。

build specification (ビルドスペック) が有効な場合、次のステップであるC# 統合ビルド解析の実行に進みます。

次は何?