WinUI 3 アプリの msixbundle を作成する
はじめに
WinUI 3 アプリで msixbundle 形式のパッケージを作成する方法です。
デフォルトのテンプレートを使う場合と Template Studio を使う場合で、多少やり方が異なります。
デフォルトのテンプレートを使用する場合
アプリ作成
Visual Studio で WinUI 3 アプリのプロジェクトを新規作成します。
WinUI アプリのテンプレートは
- 空のアプリ、パッケージ化(デスクトップの WinUI 3)
- 空のアプリ、Windows アプリケーションパッケージプロジェクトでパッケージ化(デスクトップの WinUI 3)
の 2 つがありますが、タイトルが長い方のテンプレートを使用します。
名前予約と関連付け
Microsoft Store で配付する際のアプリ名を予約します。
Microsoft パートナーセンターにログインし、[ホーム → アプリとゲーム]ページの[新しい製品 → MSIX または PWA アプリ]を選択します。
予約したい名前を入力して「製品名の予約」ボタンをクリックします。
名前予約できたらアプリケーションと関連付けます。
Visual Studio のプロジェクト右クリックから[パッケージ化して公開する → アプリケーションをストアと関連付ける]メニューをクリックします。
予約した名前を選択します。
パッケージ作成
ソリューション内にプロジェクトが 2 つ作成されていますが、Package プロジェクトのほうを右クリックし、[公開 → アプリパッケージの作成]をクリックします。
配付方法は「○○(開発者)により△△(アプリ名)として Microsoft ストアに」にします。
パッケージの選択と構成でパッケージに含めたいアーキテクチャを選択します。
ソリューションの AppPackages フォルダー配下に .msixupload および .msixbundle が作成されます。
Template Studio を使用する場合
アプリ作成
Visual Studio でプロジェクトを新規作成し、「WinUI の Template Studio」テンプレートを選択します。
機能パネルで「MSIX パッケージ」を選択します(デフォルトで選択されています)。
名前予約と関連付け
名前予約と関連付けについてはデフォルトのテンプレートを使用する場合と同様です。
パッケージ作成
ソリューションエクスプローラーのプロジェクトを右クリックし、[公開 → アプリパッケージの作成]をクリックします。
配付方法は「○○(開発者)により△△(アプリ名)として Microsoft ストアに」にします。
パッケージの選択と構成でパッケージに含めたいアーキテクチャを選択します。
ソリューションの AppPackages フォルダー配下に .msix が作成されます(.msixbundle ではありません)。
AppPackages フォルダー直下に in フォルダーを作成し、.msix のみを in フォルダーにコピーします。
PowerShell を起動し、AppPackages フォルダーに移動します。
PS> cd C:\~\AppPackages
makeappx で .msix から .msixbundle を作成します。
PS> & 'C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe' bundle /d in /p out.msixbundle /o
.msixbundle が作成されます。
自己署名入りのテスト証明書の作成
サイドローディングする場合は、テスト証明書の作成が必要です。
Package.appxmanifest をダブルクリックし、パッケージ化タブを開きます。
証明書の選択ボタンをクリックすると、証明書の選択ウィンドウが開きます。
作成ボタンをクリックすると、自己署名入りのテスト証明書の作成ウィンドウが開きます。
発行者共通名とパスワードを入力して OK します。
テスト証明書の有効期限は 1 年程度で切れるようで、その後はビルドができなくなりますが、テスト証明書を再度作成すればまたビルドできるようになります。
確認環境
項目 | 環境 |
---|---|
OS | Windows 11 Pro 23H2 |
Visual Studio | 2022 17.9.2 |
Template Studio for WinUI | 5.5 |
.NET | 8.0 |
Windows App SDK | 1.5 (1.5.240227000) |
参考リンク
主な改訂履歴
- 2024/03/10 初版。
- 2024/03/19 発行者共通名について補足。
Discussion