# 開発コマンド (Development Commands)

日常の開発で使うビルド・テスト・実行コマンドをまとめる．人間とエージェント（tester・coder，`/auto-refactor`・`/auto-audit`）が**コマンドを推測せずに済むための唯一の参照先**とする．コマンドが増減・変更されたら本ファイルを更新する．

## 前提 (Prerequisites)

- ビルドは **x64 のみ**（`TIASshot.sln` は `Debug|x64` / `Release|x64` のみ定義）．OpenCvSharp 等がネイティブ DLL に依存するため `AnyCPU` は使わない．
- レガシー形式（packages.config）のため **`dotnet build` / `dotnet test` は使えない**．MSBuild と `vstest.console.exe` を使う．
- コマンドは PowerShell で実行する．VS のエディション差（Community / Professional / Enterprise）を吸収するため，`vswhere` で MSBuild・vstest の場所を解決する．

## ツールパスの解決 (Locating Build Tools)

```powershell
$vs = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath
$msbuild = Join-Path $vs "MSBuild\Current\Bin\MSBuild.exe"
$vstest  = Join-Path $vs "Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"
```

以降のコマンドは `$msbuild` / `$vstest` を解決済みとして記載する．

## NuGet 復元 (Restore)

```powershell
nuget restore TIASshot.sln
```

`nuget.exe` が PATH に無い場合はリポジトリルートの `nuget.exe` を使う（`setup.ps1` が未取得時に自動ダウンロードする）．

## ビルド (Build)

```powershell
# 開発・検証（WHITEBOARD / MEMMONITOR 有効）
& $msbuild TIASshot.sln /t:Build /p:Configuration=Debug /p:Platform=x64

# 配布版（診断機能なし）
& $msbuild TIASshot.sln /t:Build /p:Configuration=Release /p:Platform=x64

# クリーンビルド
& $msbuild TIASshot.sln /t:Rebuild /p:Configuration=Debug /p:Platform=x64
```

構成ごとのビルドフラグの意味は [ENV_06_ビルド構成とビルドフラグ](ENV_06_ビルド構成とビルドフラグ.md) を参照する．

## テスト (Test)

自動テストの方針・対象範囲は `.claude/rules/testing.md` を参照する（本ファイルはコマンドのみ）．

```powershell
# テストプロジェクトをビルドしてから x64 で実行する
& $msbuild TIASshot.sln /t:Build /p:Configuration=Debug /p:Platform=x64
& $vstest "TIASshot.Tests\bin\x64\Debug\TIASshot.Tests.dll" /Platform:x64
```

- ネイティブ DLL を x64 でロードするため `/Platform:x64` は必須．
- Visual Studio 上ではテストエクスプローラーから実行できる（プラットフォームを x64 にすること）．

## 実行 (Run)

ビルド後，構成に対応した実行ファイルを起動する．実行時参照ファイル（`config.xml`・カメラ設定 XML・TCC の CSV）が同ディレクトリに配置済みであること（[ENV_02_環境構築手順](ENV_02_環境構築手順.md)）．

```powershell
# 開発・検証版
& "TIASshot\bin\x64\Debug\TIASshot.exe"

# 配布版
& "TIASshot\bin\x64\Release\TIASshot.exe"
```

実機カメラ・光源に接続して動作する UI アプリのため，完全な動作確認には機材が必要．
