👏

Visual StudioでWinUI 3を使ったWindows用のデスクトップアプリのexe起動まで

2024/11/12に公開

本記事のゴール

Visual StudioでWinUI 3を使い、C#でコーディング、exeファイルを作成し、
exeファイルをダブルクリックで起動させる

想定読者

・Visual StudioでWinUI 3を使ったWindows用のデスクトップアプリ開発未経験者
・デバックは実施できるが、exeファイルでの実行ができない方

事前準備

1. Visual Studioの動作環境セットアップ

Microsoftの公式サイトより動作環境[1]の確認
私はVisual Studio Community 2022をインストールしており、以下環境で動作確認済み

対象 内容
OS Windows 11 Home, 10.0.22631 ビルド22631
プロセッサ 12th Gen Intel(R) Core(TM) i7-1255U
コア数 10
.NET Framework[2] 4.8.1

2. Visual Studioのインストール&ビルド実行&更新作業

Microsoftの公式サイト[4]の「4. 最新の WinUI/Windows アプリ SDK に更新する」までを実施

exeファイル作成

1. .csprojファイルに1文追加

C#でアンパッケージのexeファイルを作成するため、Microsoftの公式サイト[5]
「7. .csproj (C#) または .vcxproj (C++) ファイルのどちらかの~」より
以下をプロジェクトファイルに追加

<WindowsPackageType>None</WindowsPackageType>

追加後のプロジェクトファイルは以下

パッケージ/アンパッケージについてはMicrosoftの公式サイト[6]
「@hayashida-katsutoshi」様のブログ参照[7]
今回アンパッケージで作成した理由は後述するエラーが解決できないこと(これが大きい...)と
Microsoft Storeで配布する予定がないため
ただMicrosoftの公式サイト[6:1]よりアンパッケージだと以下の拡張機能が使えないと記載があり、今後開発していく中で、不便になることがないか懸念が残る
バックグラウンド タスク、通知、ライブ タイル、カスタム コンテキスト メニュー拡張機能、共有ターゲットなど、多くの Windows 拡張機能にはパッケージ ID が必要です。

2. ビルド実行

以下に設定を変更し「ビルド」をクリックし「ソリューションのリビルド」をクリック
 ソリューションの構成:Release
 プラットフォーム  :x64
 ビルド対象     :(プロジェクト名)(Unpackaged)

exeファイル実行

「ソリューション エクスプローラー」の「ソリューション」を右クリックし、
「エクスプローラーでフォルダを開く」をクリック

以下のexeファイルをダブルクリックし、デバックした際と同じ動作をすればOK
\開いた階層\ソリューション名\bin\x64\Release\net8.0-windows10.0.19041.0\win-x64\ソリューション名.exe

「net8.0-windows10.0.19041.0」はターゲットフレームワーク[8]であり、
おそらく実行環境がこれより最新バージョンを使用していれば問題ないと思われます

ひっかかった点

ビルドを「Packaged」で実行するとexeファイルは正常に作成可能だが、ダブルクリックしても
デスクトップアプリが起動せず、イベントビューアを見るとイベントID1026の.NET Runtimeエラーが発生する

Exception Info: System.Runtime.InteropServices.COMException (0x80040154): クラスが登録されていません (0x80040154 (REGDB_E_CLASSNOTREG))

ネット&ChatGPTに聞いて、試しても解決せず...
原因が分かる方がいらっしゃったら何卒コメントお願い申し上げます
(クラスを登録すればよい?ただどうもやり方が分からず...)

実施内容は以下のアンインストール、インストールとWindows App SDKの最新バージョンの
インストール[9]とインストール確認[10]です
(さすがにPCを出荷前の初期状態にリカバリすることは辞めました...)
・.NET Framework
・Visual Studio
・Microsoft.UI.Xaml

脚注
  1. https://learn.microsoft.com/ja-jp/windows/apps/windows-app-sdk/system-requirements ↩︎

  2. https://learn.microsoft.com/ja-jp/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed ↩︎

  3. https://learn.microsoft.com/ja-jp/visualstudio/install/change-installation-locations?view=vs-2022 ↩︎

  4. https://learn.microsoft.com/ja-jp/windows/apps/get-started/start-here?tabs=vs-2022-17-10 ↩︎

  5. https://learn.microsoft.com/ja-jp/windows/apps/winui/winui3/create-your-first-winui3-app?pivots=winui3-unpackaged-csharp#instructions-for-unpackaged-c-winui-3-apps ↩︎

  6. https://learn.microsoft.com/ja-jp/windows/apps/package-and-deploy/ ↩︎ ↩︎

  7. https://qiita.com/hayashida-katsutoshi/items/eba4fe2e9332e87cdc8f ↩︎

  8. https://learn.microsoft.com/ja-jp/dotnet/standard/frameworks ↩︎

  9. https://learn.microsoft.com/ja-jp/windows/apps/windows-app-sdk/downloads ↩︎

  10. https://learn.microsoft.com/ja-jp/windows/apps/windows-app-sdk/check-windows-app-sdk-versions ↩︎

Discussion