WinUI 3 で作成したアプリを単独の EXE 形式で実行できるように出力する

Sivun luontipäivämäärä :

Tällä hetkellä tarkastelemasi sivu ei tue valittua näyttö kieltä.

動作確認環境

Windows
  • Windows 11
Visual Studio
  • Visual Studio 2022 Version 17.12.3
.NET
  • .NET 8
WinUI
  • WinUI 3
Windows App SDK
  • 1.6.3 (1.6.241114003)

動作必須環境

下位バージョンでも動作する場合もあります。

Windows
  • Windows 10
  • Windows 11
Visual Studio
  • Visual Studio 2022 Version 17.12 以降
.NET
  • .NET 8 以降
Windows App SDK
  • 1.6.0 以降

はじめに

WinUI 3 で作成されたアプリケーションは通常パッケージ化されたアプリケーションとなっており特殊な環境下でのみ実行できる形になっています。 実行させるには Microsoft ストアからダウンロードしてインストールする形にする必要があります。 直接ファイルを配布する方法もありますが、やや複雑な手順や設定が必要で不特定多数に配布するには向いていません。 その代わり非常にセキュアな環境でアプリケーションを実行できます。

今回紹介する方法はパッケージをしない方法 (unpackaged) で EXE ファイルを作ることができるので利用者にそのまま EXE ファイルを配布して実行させることができます。 WindowsForm や WPF で作成したアプリケーションを配布するときと同じ形にしたい場合は今回の手法を利用するのが向いています。

注意点

WinUI 3 関連のプロダクトは常に更新状態であるため、バージョン違いによってうまく動作しないことがあります。 今回の手順も IDE や SDK のバージョンを合わせれば動くと思いますが、うまく動かない場合は各種バージョンに注意してください。

またパッケージしない (unpackaged) で作られたプログラムはパッケージした (packaged) プログラムに比べていくつかの機能が制限されます。 詳細を説明するのが難しいので作ったプログラムに合わせて動作するか確認してください。

前提条件

Visual Studio 2022 を更新する

基本的には最新バージョンにしていれば問題ありません。 少なくともこの記事の冒頭にあるバージョン以降にしておいてください。 Visual Studio のメニューから実行するかスタートメニューから「Visual Studio Installer」を起動して更新してください。

Windows アプリ SDK (Windows App SDK) のインストール

Visual Studio インストール時に含まれる Windows App SDK は古いため最新にしておく必要があります。 以下のサイトからダウンロードしてインストールしてください。

実行するとバッチが起動して問答無用で更新されます。

プロジェクトを作成する

後は作りたいプログラムを作ってください。 ここでは新規プロジェクトの状態で説明します。

NuGet でパッケージのバージョンを最新にする

「Microsoft.WindowsAppSDK」のバージョンをこの記事の冒頭にあるバージョン以降にしておいてください。 付属の「Microsoft.Windows.SDK.BuildTools」も最新にして問題ありません。

更新する場合は NuGet 管理パッケージから更新できます。

パッケージを無効にする

プロジェクトのプロパティを開きます。

「アプリケーション > Packaging」のカテゴリに「Enabled MSIX Packaging for this Project」という項目があるのでチェックを外します。

実行してみる

ツールバーのデバッグ実行を見てみると「XXXX (Package)」となっていると思いますが、 選択肢から「XXXX (Unpackaged)」に変更できるので Unpackaged に変更します。

変更したら実行してみてください。エラー無く実行できれば問題ありません。

EXE ファイルの生成

ビルドした後に生成される EXE ファイルを配布してもいいのですが、今回は「発行」メニューから実行ファイルを出力してみます。

ちなみに unpackaged で「発行」処理を正常に行うには、インストール時に「.NET デスクトップ開発」を選択している必要があります。

プロジェクトを右クリックして「発行」を選択します。

新規プロジェクトから始めた場合は最初からプロファイルが3つ作成してあるので配布先ターゲットとなる環境を選択します。 プロジェクトのアップデートなどで更新している場合はプロファイルがないときもあるのでその場合は新規でプロファイルを作成してください。

「その他のアクション」から「編集」を選択します。

初期設定などなぜかプロファイルと設定内容が異なっているので以下のようにプロファイルに合わせます。

パラメータ名 設定値 備考
構成 Release xXX プロファイルに合わせて変更してください。win-x64 なら Release x64 にします。
ターゲット フレームワーク 現在のプロジェクトに合わせる
配置モード 自己完結 現仕様では「自己完結」しか動作しません。
ターゲット ランタイム win-xXX プロファイルに合わせて変更してください。win-x64 なら win-x64 にします。
ターゲットの場所 初期値のまま
単一ファイルの作成 オフ 現仕様では単一ファイルで作成しても実行できません。
ReadyToRun 任意 パフォーマンスを上げたい場合はチェックしてください。
未使用コードのトリミング 任意 ファイルサイズを小さくしたい場合はチェックします。プログラムの作りによっては動作しなくなるので注意。

設定が終わったら「発行」ボタンをクリックします。

エラーなく発行できたことを確認します。

発行されたファイルは「ターゲットの場所」のリンクをクリックすると開けます。

EXE ファイルを実行し起動できれば問題ありません。 配布する場合はこのフォルダにあるファイル一式を持っていく必要があります。 「.pdb」ファイルなど実行に不要なファイルについては削除しても問題ありません。