# 環境構築手順 (Environment Setup)

## セットアップ方法の選択 (Setup Method)

### 自動セットアップ（推奨）

リポジトリルートの `setup.ps1` を使用することで，Visual Studio のインストール，データフォルダの作成，NuGet パッケージの復元を自動化できる．

**実行手順**

1. PowerShell を管理者権限で開く．
2. リポジトリのルートに移動する．

   ```powershell
   cd [リポジトリのパス]
   ```

3. スクリプトの実行ポリシーを一時的に変更する．

   ```powershell
   Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
   ```

4. セットアップスクリプトを実行する．

   ```powershell
   .\setup.ps1
   ```

5. スクリプト完了後，IC Imaging Control SDK を手動でインストールする．
   - 詳細は「必要なソフトウェア — IC Imaging Control SDK」を参照する．

**自動化される内容**

- Visual Studio 2022 のインストール（未インストール時のみ）
  - `.vsconfig` により「.NET デスクトップ開発」ワークロードが自動で設定される．
- `C:\TIAS_Data` フォルダの作成（未作成時のみ）
- NuGet パッケージの復元

**自動化されない内容（手動対応が必要）**

- IC Imaging Control SDK のインストール
- 実行時設定ファイルの配置（config.xml，カメラ設定 XML，CSV）

### 手動セットアップ

スクリプトを使用しない場合は，以下の「必要なソフトウェア」〜「実行時の準備」の手順に従って手動で構築する．

## 必要なソフトウェア (Required Software)

### Visual Studio 2022

- 公式サイトからインストーラをダウンロードしてインストールする．
- ワークロード選択で「.NET デスクトップ開発」を有効にする．
- リポジトリルートの `.vsconfig` をインストーラで読み込むと，必要なワークロードが自動で提案される．

### IC Imaging Control SDK

- The Imaging Source が提供するカメラ制御ライブラリ．
- ImagingSource 製カメラ（DFK33UX178，DFK23UX249）の使用に必要．
- インストール後，参照 DLL が Visual Studio から認識されることを確認する．

### Lumenera SDK

- Lumenera 製カメラ（Lw110）の使用に必要．
- `lumenera.api.dll` はリポジトリ内に同梱されている．

## リポジトリのセットアップ (Repository Setup)

1. リポジトリのクローン

   ```bash
   git clone [リポジトリURL]
   cd TIASshot
   ```

2. ソリューションを開く
   - `TIASshot.sln` を Visual Studio 2022 で開く．

3. NuGet パッケージの復元
   - Visual Studio のメニューから「ビルド」→「NuGet パッケージの復元」を実行する．
   - または，パッケージマネージャーコンソールで以下を実行する．

   ```bash
   nuget restore TIASshot.sln
   ```

4. ビルド
   - 「ビルド」→「ソリューションのビルド」を実行し，エラーがないことを確認する．

## 実行時の準備 (Runtime Preparation)

### 設定ファイルの配置

- `TIASshot/config.xml` が実行ファイルと同じディレクトリに存在することを確認する．
- パラメータの詳細は `SPEC_02_設定ファイル仕様.md` を参照する．

### カメラ設定ファイルの確認

- ImagingSource カメラを使用する場合，以下のファイルが同ディレクトリに必要．
  - `DFK33UX178.xml`
  - `DFK23UX249.xml`

### TCC参照ファイルの確認

- 以下の CSV ファイルが実行ファイルと同じディレクトリに必要．
  - `tcc_srgb.csv`: sRGB 変換の参照値
  - `tcc_xyz.csv`: XYZ 変換の参照値

### データ保存フォルダの確認

- `config.xml` の `<SaveFolder>` に指定したフォルダへの書き込み権限があることを確認する．
- デフォルトは `C:\TIAS_Data`．
- `setup.ps1` を実行した場合，このフォルダは自動で作成される．
