このドキュメントでは、PhotoGeoExplorer の開発環境のセットアップと、ローカルでのビルド・インストール手順について説明します。
開発およびローカルインストール(DevInstall.ps1)を実行するには、以下のツールが必要です。
- Windows 10 バージョン 2004 (Build 19041) 以降、または Windows 11
- 開発者モード の有効化を推奨(必須ではありませんが、スムーズです)
- 設定 > プライバシーとセキュリティ > 開発者向け > 開発者モード
- .NET 10 SDK (Preview)
ビルド自体はコマンドラインでも可能ですが、MSIX パッケージ作成ツール (MakeAppx.exe, SignTool.exe) を入手するために、以下のコンポーネントのインストールが必要です。
Visual Studio Installer で以下を選択してください:
- ワークロード: .NET デスクトップ開発
- オプション: Windows App SDK C# テンプレート
- ワークロード: ユニバーサル Windows プラットフォーム開発
- 重要: これを選択すると Windows 10 SDK がインストールされます(
MakeAppx.exe等が含まれます)。 - 個別に Windows SDK をインストールしても構いません。
- 重要: これを選択すると Windows 10 SDK がインストールされます(
リポジトリには、Store 提出用と同じ構成(MSIX)でビルドし、自己署名証明書で署名してインストールするスクリプトが含まれています。
PowerShell を開き、以下のコマンドを実行します。
.\scripts\DevInstall.ps1このコマンドは以下の処理を自動で行います:
- ビルド: Store Upload モードでリリースビルドを実行し、
msixuploadを生成します。 - 証明書作成: ローカル開発用の自己署名証明書(
PhotoGeoExplorer Local Debug)を作成します(初回のみ)。 - 署名: 生成されたパッケージを展開し、ローカル証明書で署名し直します。
- 証明書インストール: 証明書を信頼されたストアにインストールします。
- ※ 初回のみ、ユーザーアカウント制御 (UAC) のプロンプトが表示されます。「はい」を選択してください。
- WinUI 3 アプリ (
runFullTrust) の要件として、証明書をLocal Machineストアに登録する必要があります。
- アプリインストール: 署名済みパッケージをシステムにインストールします。
コードを変更せず、既存のビルド成果物を再利用してパッケージ化とインストールだけやり直したい場合(または署名エラーのデバッグ時など)は -ReuseBuild を指定します。
.\scripts\DevInstall.ps1 -ReuseBuild一時ファイルや証明書を削除してリセットしたい場合:
.\scripts\DevInstall.ps1 -CleanWindows SDK がインストールされていません。Visual Studio Installer から「ユニバーサル Windows プラットフォーム開発」ワークロードを追加するか、Windows SDK を単体でインストールしてください。
証明書が正しく信頼されていません。
- スクリプトが管理者権限(UAC)を求めた際に「いいえ」を押していませんか?
- 手動で
scripts/certs/PhotoGeoExplorer_LocalDebug.cerを「ローカルコンピューター」>「信頼されたルート証明機関」および「信頼されたユーザー」にインストールしてみてください。
- .NET 10 SDK が正しくパスに通っているか確認してください (
dotnet --version)。 - ソリューションの復元を試してください:
dotnet restore PhotoGeoExplorer.sln
- E2E ワークフロー(
.github/workflows/e2e.yml)はpull_request/push(main,develop)で自動実行されます。 - E2E 実行時は、成功/失敗に関わらず以下を artifact として保存します。
- テスト結果(TRX)
- アプリログ(
%LocalAppData%\PhotoGeoExplorer\Logs) - 失敗解析用スクリーンショット(
%TEMP%\PhotoGeoExplorerE2E\Diagnostics)
- 運用が安定したら、
mainの Branch protection でE2E / e2eを Required check に設定します。- GitHub:
Settings>Branches>mainルール >Require status checks to pass before merging
- GitHub:
scripts/DevInstall.ps1: メインのインストールスクリプトscripts/certs/: 生成された自己署名証明書が格納されます(.gitignore 対象)scripts/temp/: 作業用の一時フォルダ(.gitignore 対象)