LoginSignup
3
1

More than 1 year has passed since last update.

.NET MAUI RC3を試してみる(前編)

Last updated at Posted at 2022-05-12

.NET MAUI がRC3に到達

.NET6と同時に出る予定だった.NET MAUIも遂にRC3まで来ました。
興味はあるけどリリースされてから、という人も多いと思います。
まずデフォルトがどんなコードかチェックするべくコンパイルしてみました。

プロジェクト作成直後のソースはこちら。

テンプレートソースコードの解説記事は中編を参照してください

前提

  • Windows10 (21H2) で実行
  • Windows用アプリ を作成。Android, iOS,等は今回省いています。
  • 前編ではなるべくコード変更せず、Windowsでコンパイル成功するまでとします。

準備:VisualStudio 2022Preview

インストーラーをダウンロードしインストールすれば終わりです。
オプションはMAUIだけ選択、14GBあります。追加でAndroidSDKをインストールする人はで空き容量に気を付けましょう。
vs2022-preview.png

準備:開発者モード

Windows用アプリを開発するには「設定」で開発者モードをオンにする必要があります。
dev-mode.png

準備は以上で終了です。

プロジェクトの作成

早速.NET MAUIプロジェクトを作成します。

「.NET MAUI アプリ(プレビュー)」 テンプレートから作成します。しばらくするとソリューションが作成されます。プラットフォームは5種類対応しているようですね。
image.png

Android SDK

しばらくするとAndroidSDKのインストールを促してきます。
今回はAndroid向けにはコンパイルしないのでインストールせず、キャンセルしました。

Andriod,iOSを無効化

このプロジェクトをこのままコンパイルしても「Android SDKがありません」と出てコンパイルエラーとなります。今回はWindowsだけとするので他のプラットフォーム対応を削除します。

csprojファイルを直接編集します。

MauiApp1.csproj
	<PropertyGroup>
		<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks>
		<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.19041.0</TargetFrameworks>

        <!-- 省略 -->

		<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.2</SupportedOSPlatformVersion>
		<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">14.0</SupportedOSPlatformVersion>
		<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
		<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
		<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
		<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
	</PropertyGroup>

このようになっているので TargetFrameworks の1行目と SupportedOSPlatformVersion から windows 以外の4行を削除します。

MauiApp1.csproj (Windows-only)
	<PropertyGroup>
		<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.19041.0</TargetFrameworks>

        <!-- 省略 -->

		<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
		<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
	</PropertyGroup>

コンパイル、実行

これでWindowsだけで動くバイナリーをコンパイルできます。
こんなアプリが出来上がります。

「Click me」というボタンがあり、クリックするとカウントアップする仕組みになってます。

ちなみにReleaseビルドしたときのbinフォルダのサイズは220MB・・・。
なかなか気軽なアプリではなさそうな気配です。

この時点のソースコードをGitHubにアップしておきます。csprojだけ変更しています。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1