# 環境構築手順 (Environment Setup)

DeepTIAS をビルド・実行するための開発環境の構築手順．新しく参加したメンバーや，PC を入れ替えたときに上から順に行う．

## 前提 (Prerequisites)

- Windows 10 / 11（x64），メモリ 8 GB 以上
- GitHub のアカウントがあり，リポジトリ `rintoHasegawa/DeepTIAS` へのアクセス権を持っていること

## 手順 (Steps)

### 1. Visual Studio Build Tools 2022 を入れる

ワークロード「.NET デスクトップ ビルド ツール」と「C++ ビルド ツール」を入れる．PowerShell で以下を実行する（管理者権限の確認が出たら許可する）．

```powershell
winget install --id Microsoft.VisualStudio.2022.BuildTools --exact --override "--add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --passive --norestart"
```

Build Tools が既に入っていて「C++ ビルド ツール」だけが無い場合は，以下で追加する．

```powershell
& "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools" --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --passive --norestart
```

- ※ 「C++ ビルド ツール」は，`rgb2lab\TongueAnalysis.exe`（Image&Calib モードで使う）が必要とする VC++ のデバッグ用ランタイムを入れるために必要．入れると `C:\Windows\System32` に `MSVCP140D.dll`・`ucrtbased.dll` 等が入る．
- ※ 追加のコマンド（`modify`）は動作を確認済み．新規インストールのコマンド（`winget install`）は未検証．
- ※ 画面（`Form1.Designer.cs`）を WinForms デザイナで編集したいときは，Visual Studio 2022 Community を追加で入れる（`winget install --id Microsoft.VisualStudio.2022.Community --exact --override "--add Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended --passive --norestart"`）．

### 2. Git・Git LFS・GitHub CLI・Python を入れる

```powershell
winget install Git.Git GitHub.cli Python.Python.3.12
git lfs install
```

- ※ Git for Windows には Git LFS が同梱されている．
- ※ Python は Claude Code のフック実行に使う（アプリ自体は Python を使わない）．

### 3. リポジトリを取得する

```powershell
git clone https://github.com/rintoHasegawa/DeepTIAS.git
cd DeepTIAS
git lfs pull
```

- ※ モデル（`*.pb`，`*.onnx`）は Git LFS で管理している．`git lfs pull` 後に `Tongue extraction\models\` の各ファイルが数十 MB あることを確認する（数百バイトしか無ければ LFS の取得に失敗している）．

### 4. ビルドする

[ENV_04_開発コマンド](ENV_04_開発コマンド.md) のコマンドで，NuGet パッケージを復元してから構成 `Release`・プラットフォーム `x64` でビルドする．
Visual Studio 2022 Community を入れた場合は，`Tongue extraction.sln` を開いて同じ構成でビルドしてもよい（NuGet パッケージは初回ビルド時に自動で復元される）．

### 5. 入力データを置いて実行する

※ Image モード・Image&Calib モードとも動作確認済み（Image&Calib は手順 1 の「C++ ビルド ツール」が必要）

実行に必要な外部バイナリ・色補正データ・出力雛形は `Tongue extraction\runtime\` にあり，ビルド時に出力フォルダへコピーされる．

アプリは作業ディレクトリを基準に `..\Input`・`..\Output` を読み書きする．ビルド出力 `Tongue extraction\bin\x64\Release\` から起動する場合，入力は以下に置く．

```text
Tongue extraction\bin\x64\
├── Input\
│   ├── TongueImage\            # 舌画像（.bmp）
│   └── CalibrationColorChart\  # カラーチャート画像（Calib モードのみ．舌画像と同名）
├── Output\                     # 解析結果（実行時に作られる）
└── Release\
    └── DeepTIAS2.7.exe
```
