WinUI 3 で開発を行うための準備をする
動作確認環境
- Windows
-
- Windows 11
- Visual Studio
-
- Visual Studio 2022 Version 17.9.3
- .NET
-
- .NET 6
- (.NET 8)
- WinUI
-
- WinUI 3
- Windows App SDK
-
- 1.4.230913002
動作必須環境
下位バージョンでも動作する場合もあります。
- Windows
-
- Windows 10
- Windows 11
- Visual Studio
-
- Visual Studio 2022 Version 17.9.3 以降
- .NET
-
- .NET 6
- (.NET 8)
- Windows App SDK
-
- 1.4.230913002 以降
Visual Studio のインストールと WinUI のセットアップ
WinUI 3 の開発プロジェクトは Visual Studio のインストールで追加することが可能です。 ここでは Visual Studio のインストール手順については簡略化して説明します。 詳しい手順などは以下の Tips にまとめていますのでそちらを参照してください。
インターネットやメディアから入手した Visual Studio 2022 のインストーラーを起動します。 Community や Professional、またはその上位のエディションに対応しています。
ワークロードの選択で「.NET デスクトップ開発」を選択します。
「.NET デスクトップ開発」を選択した状態で右側にある「インストール詳細」から「Windows アプリ SDK C# テンプレート」にチェックを入れます。
あとはインストールを開始してください。他にも画面は出てきますがプロジェクト作成のところまで説明は省きます。
インストールが完了したら新しいプロジェクトの作成を行います。
右上の検索項目に winui
があるので選択すると WinUI 3 のプロジェクトテンプレートが表示されるので任意のテンプレートを選択してプロジェクトを作成します。
これで WinUI 3 を使用したアプリケーションの開発を行うことができます。
「インストールされていないバージョンの .NET をターゲットにしています」が表示される場合
Visual Studio 2022 のバージョンが 17.9.1
の時点では WinUI 3 の .NET のターゲットは .NET 6 となっています。
Visual Studio 2022 で追加のランタイムを選択していない場合は .NET 8 のランタイムしかインストールされないので下記のような警告が表示される場合があります。
気になる場合は .NET 6 のランタイムをインストールしてもかまいませんし、そのまま警告を閉じてしまっても構いません。 .NET 6 ランタイムをインストールしなくてもデバッグ実行はできます。
WinUI 3 の開発環境を後で追加する場合
先に Visual Studio をインストールしてしまった場合でも後から WinUI 3 の開発環境を追加することが可能です。
Visual Studio を起動しメニューから「ツール > ツールと機能を取得」を選択します。
Visual Studio インストール時と同じ画面が表示されるので「.NET デスクトップ開発」がチェックされていることを確認しつつ右側にある「インストール詳細」から「Windows アプリ SDK C# テンプレート」にチェックを入れてください。
開発者モードを有効にする
WinUI アプリケーションの実行はほかのデスクトップアプリケーションとは異なりセキュリティが強化された環境で実行されます。 そのためそのままでは実行することはできません。 実行しようとすると以下のようなダイアログが表示され「開発者モード」を有効にするように促されます。 リンクをクリックすれば設定画面が表示されるので「開発者モード」を有効にしてください。
Visual Studio からでなくても設定画面から「開発者モード」の有効・無効を切り替えることもできます。 スタートメニューから「設定」を選択します。
「システム」メニューから「開発者向け」を選択します。
「開発者向け」の切り替えがあるので「オン」に設定します。 注意書きが表示されるので「はい」を選択して有効にします。
.NET 8 に変更する場合
本テンプレートでプロジェクトを作成するとデフォルトで .NET 6 になってしまいます。 プロジェクトのプロパティからターゲットフレームワークを .NET 8 に変更してもビルドでエラーや警告が表示されてしまいます。 しかし 2024/03/13 ごろに Windows App SDK が更新され .NET 8 に正式対応となりました。
ただテンプレートは .NET 6 のままなので一度プロジェクトを作成した後に .NET 8 対応の作業が必要となります。 もしかしたら今後のバージョンアップで対応される可能性はあるかもしれません。
まずプロジェクトを作成したら NuGet で Windows App SDK 関連のバージョンを最新にします。
特になければすべて最新にします。少なくとも Microsoft.WindowsAppSDK
は 1.5.XXXX 系にする必要があります。
プロジェクトのプロパティからターゲットのフレームワークを .NET 8 に変更します。
この状態でビルドをしてもプロジェクトの設定が古いためエラーが表示されます。
プロジェクトファイルをコードとして開きます。
RuntimeIdentifiers
というパラメータがあるので以下のように Win10
の 10
の文字を削除します。
修正前
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
↓
修正後
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
プログラムの発行設定も書き換えます。
「Properties > PublishProfiles」フォルダにあるそれぞれの .pubxml
ファイルを開きます。
こちらも同様に RuntimeIdentifier
のパラメータの Win10
の 10
の文字を削除します。
後はリビルドを行いエラーや警告がなくなることを確認します。
(.pubxml
ファイルに警告が残りますが今回の問題とは別の構文としての警告なので気にする必要はありません。)
ただなぜか WinUI のクラスライブラリのほうは上記と同じ対応をしても警告が残り続けます。 とりあえず実行はできるのでこちらは修正されるまで待ちましょう。