.NET MAUI Preview 10 を試してみる

.NET Conf 2021 にて 「.NET MAUI Preview 10 がリリースされてるでー」という紹介があったので、やってみます。

f:id:takunology:20211110020344p:plain

そういえば、前回試したのは Preview 4 でした。だいぶ時が経っているので色々と準備が必要ですね。前回の記事も貼っておきます。

blog.takunology.jp

準備

Visual Studio 2022 17.1 Preview 1 が必要みたいなので、導入します。やり方は .NET Blog にかかれているので参考にしてみてください。

devblogs.microsoft.com

構成に MAUI を追加します。

f:id:takunology:20211110021008p:plain

あとはダウンロード&インストールですね。

ブログには書かれていませんが、CLI にてセットアップが必要です。.NET 6 を導入していない場合は先にこちらからセットアップしてください。私の環境では Preview 4 のまま放置していたため、更新が必要でした。

f:id:takunology:20211110022657p:plain

最新版をインストールします。

dotnet tool install -g redth.net.maui.check

やはり 0.4.2 だったみたいですね。

f:id:takunology:20211110022828p:plain

あとは下記コマンドを実行して、必要なものをセットアップしていきます。このツールの良いところは、MAUI環境を構築するのに必要なものを持ってきてくれる点ですね。

maui-check

足りないものがあるので、y を入力して実行。

f:id:takunology:20211110023115p:plain

f:id:takunology:20211110023417p:plain

"Congratulations, everything looks great!" と表示されれば準備完了です。念の為もう一度チェックをかけて、同じように表示されるかを確認すると良いと思います。

Visual Studio でプロジェクト作成してみたけど...

.NET MAUI App を選択して作成します。

f:id:takunology:20211110022241p:plain

f:id:takunology:20211110023805p:plain

ここで「あれ?6.0.0-preview.4.* ってなっとるやん」と思いますが、私も混乱しています。ここを preview.10.* とかにすると参照エラーを起こすので、このままにして起動します。(この後動かしてみますが、やっぱり古いままでした。)

f:id:takunology:20211110025154p:plain

WinUI3 を使っているみたいですが、WinUI3.csproj に記述されているバージョンが古いので合わせます。

<PackageReference Include="Microsoft.ProjectReunion" Version="[0.8.0]">

競合エラーは消えたみたいですが、なんか色々エラーが掘り起こされました。

f:id:takunology:20211110025607p:plain

一旦、WinUI3 のほうは保留します。Android の方は動かせそうだったのですが...

f:id:takunology:20211110030159p:plain

AndroidManifest.xml が悪さしてるみたいです。"VersionCode 1.0 is invalid. It must be an integer value. " ということで、整数値じゃないとだめみたいなので、整数値に変更します。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.companyname.MauiApp1" android:versionCode="1.0" android:versionName="1.0.0">

の部分にて、android:versionCode="1.0" となっているので、これを android:versionCode="1" にします。

これで実行すると動かせます。

f:id:takunology:20211110031925p:plain

でもこれって MAUI preview 10 じゃなくて 4 のやつじゃね?と腑に落ちない結果になりました。

dotnet コマンドでプロジェクト作成してみたら...

Visual Studio ではなぜか MAUI preview 4 になってしまうので、CLIから作ってみました。

 dotnet new maui

すると

テンプレート ".NET MAUI App" が正常に作成されました。
テンプレートパッケージ 'Microsoft.Maui.Templates::6.0.100-preview.4.634' の更新プログラムを使用できます。
パッケージを更新するには、以下を使います:
   dotnet new --install Microsoft.Maui.Templates::6.0.101-preview.10.2068

と表示されました。「おやおや?そもそもテンプレートパッケージが古かったのでは?」と思い、パッケージの更新をしてみました。

f:id:takunology:20211110044730p:plain

これで古いテンプレートが削除されたみたいです。(この辺は Visual Studio が自動でやってくれればなぁと思いつつ。)

ここで一度、Visual Studio を起動してプロジェクトを作ってみました。

f:id:takunology:20211110045040p:plain

「テンプレート新しくなっとるやんけーー!」

f:id:takunology:20211110045533p:plain

「バージョンアップされとるやんけーー!」

ということで、dotnet コマンドを使用しないと Visual Studio のプロジェクトテンプレートも変更されないみたいですね。ともあれ、プロジェクトテンプレートが更新されたのでもう一度トライします。

Visual Studio でリトライ

新しくなったテンプレートを起動した直後は色々エラーが表示されますが、リビルドすると直ります。

f:id:takunology:20211110051146g:plain

ホットリロードもできますね。Android でも動かせます。

f:id:takunology:20211110051903p:plain

というわけで、.NET MAUI Preview 10 を WindowsAndroid で動かせました。

.NET MAUI Preview 10 以前のバージョンで動かしていた方は、dotnet コマンドを使用して古いプロジェクトテンプレートを削除してからプロジェクト作成しましょう。

dotnet new --install Microsoft.Maui.Templates::6.0.101-preview.10.2068

詳細はこちらから確認してみてください。

github.com