C# WinUI 3アプリを作っていく途中で、躓いた部分を備忘録的に投稿します。今回はサンドボックス外(アンパッケージアプリ)としてビルドして実行する手順です。
プロジェクトの初期状態はパッケージアプリ
C#で、WinUI 3プロジェクトを作成した場合、初期状態はサンドボックス内で実行されるパッケージアプリとして設定されています。
つまり、UWPのようにMicrosoftストアアプリとして実行されるような状態です。
この場合、エクスプローラーで実行形式のファイルを開いてもアプリは表示されません。
パッケージタイプを再設定
詳しい内容は公式ページの「外部の場所でパッケージ化されたアプリまたはパッケージ化されていないアプリの Windows App SDK ランタイムを使用する」をご覧ください。
プロジェクトファイルを編集してパッケージタイプを再設定します。
具体的には次の手順で行います。
1.[ソリューション エクスプローラー]でプロジェクト名を右クリックして表示されたポップアップメニューから[プロジェクト ファイルの編集]メニューを選択します。
2. 表示されたXMLファイル内の[PropertyGroup]タグ内(2カ所あるので場所に注意)に次のタグを追加します。
<WindowsPackageType>None</WindowsPackageType>
追加する場所は下の画像を参考にしてください。
3. ファイルを上書き保存します。
4.[ソリューション エクスプローラー]で[Package.appxmanifest]ファイルを削除します。
5. プロジェクトを[デバッグ実行]します。
6.[配置エラーが発生しました。続行しますか?]メッセージで[はい]をクリックします。
7.[デバッグするには、プロジェクトを配置する必要があります。構成マネージャーで配置を有効にしてください。]メッセージで[OK]をクリックします。
構成マネージャーで新しい配置を作成します。
新しい配置の作成
配置に利用する[Package.appxmanifest]ファイルを削除したので、構成マネージャーで利用する配置を作成していきます。
1.[ソリューション エクスプローラー]で[Properties]フォルダー内の[launchSettings.json]ファイルを開きます。(ファイルが無い場合には、この場所に新しく作成します)
2. 表示されたファイルに、次のようにJSON形式で設定を追加します。(既に設定がある場合には、削除してコードを追加します)
{
"profiles": {
"WinUI3ImageViewer (Unpackaged)": {
"commandName": "Project"
}
}
}
3. 上書き保存します。
ランタイムのインストール
新しい配置設定を追加後にプロジェクトを[デバッグ実行]してアプリの起動を確認します。
次のようなエラーメッセージ[This application requires the Windows App Runtime]が表示された場合には、Windows App SDK ランタイムが必要になります。
Windows App SDK がインストールされている環境でも、ランタイムが要求される場合があります。
エラーが表示された場合には公式ページ[Windows App SDK 用のダウンロード]からメッセージに表示されたバージョン(上の画像の場合には1.2)のランタイムをインストールします。
ランタイムがインストールされた環境であれば[デバッグ実行]でアプリが起動して表示されるようになります。
もちろん、エクスプローラーで実行形式のファイルを開いてもアプリが起動されます。
まとめ
今回は、WinUI 3 アプリをアンパッケージ化して、実行ファイルで起動してアプリを表示する方法を書きました。
WinUI3プロジェクトを作成した場合、初期ではUWPアプリと同様にパッケージアプリとして設定されるため、ストアアプリとして実行されるようにビルドされるため、配置ファイルを変更して、アンパッケージ化する必要があります。
WinFormsの時代とは違って、Windowsアプリにも、パッケージやサンドボックスの概念が追加され実装部分を書く手順が少し面倒です。
C#のWinUI 3アプリを実行ファイルを開いて実行したい場合の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。