次の方法で共有


.NET MAUI for .NET 8 の新機能

.NET 8 の .NET MAUI の焦点は品質です。 .NET 8 では、689 件の問題を終了した 1618 個のプル要求がマージされました。 これには、.NET MAUI チームと .NET MAUI コミュニティからの変更が含まれます。 これらの変更により、.NET 8 の品質が大幅に向上します。

Von Bedeutung

Xcode や Android SDK Tools などの基になる外部依存関係を操作するため、.NET マルチプラットフォーム アプリ UI (.NET MAUI) サポート ポリシーは 、.NET および .NET Core サポート ポリシーとは異なります。 詳細については、「.NET MAUI のサポート ポリシー」をご覧ください。

.NET 8 では、.NET MAUI は .NET ワークロードおよび複数の NuGet パッケージとして出荷されます。 このアプローチの利点は、プロジェクトを特定のバージョンに簡単にピン留めできる一方で、リリースされていないビルドや試験的なビルドを簡単にプレビューできるようにすることです。 新しい .NET MAUI プロジェクトを作成すると、必要な NuGet パッケージがプロジェクトに自動的に追加されます。

この記事では、.NET MAUI for .NET 8 の新機能の一覧を示し、それぞれの詳細情報へのリンクを示します。

.NET 8 の新機能については、「.NET 8 の新機能」を参照してください。

新しい機能

このリリースの .NET MAUI の焦点は品質ですが、アプリで新しいシナリオを可能にする新しい機能もあります。

コントロール

デスクトップ

ジェスチャ認識エンジン

プラットフォーム統合

  • Geolocation クラスは、アプリがフォアグラウンドにあるときに場所の変更をリッスンできます。 詳細については、「 場所の変更をリッスンする」を参照してください。
  • Flashlight は、デバイスで懐中電灯が使用可能かどうかを決定する IsSupportedAsync メソッドを取得します。 詳細については、「 懐中電灯」を参照してください。
  • SensorSpeed 合は、すべてのプラットフォームで統一されています。 詳細については、「 デバイス センサーへのアクセス」を参照してください。
  • Permissions クラスは、Permissions.Bluetoothアクセス許可を取得します。これは、Bluetoothデバイスを検索し、現在のデバイスを他のBluetoothデバイスで検出し、既にペアリングされているBluetooth デバイスと通信するための Android 12 アクセス許可です。 詳細については、「アクセス許可」を参照してください。
  • Permissions クラスは、近くの WiFi デバイスにアクセスするための Android 13 アクセス許可であるPermissions.NearbyWifiDevicesアクセス許可を取得します。 詳細については、「アクセス許可」を参照してください。

XAML

トラブルシューティング

その他

型の非推奨と削除

次の型またはメンバーは非推奨になりました。

次の型またはメンバーが削除されました。

動作の変更

次の動作が以前のリリースから変更されました。

  • XAML から Map コントロールを使用するには、次の xmlns 名前空間宣言が必要になりました: xmlns:maps="http://schemas.microsoft.com/dotnet/2021/maui/maps"
  • ImageSource.FromStream メソッドを使用してストリームからイメージを読み込むときに、Android でイメージ キャッシュが無効になります。 これは、適切なキャッシュ キーを作成するデータがないためです。
  • iOS では、ソフト入力キーボードがテキスト入力フィールドをカバーする場合にページが自動的にスクロールされ、フィールドがソフト入力キーボードの上に配置されます。 この既定の動作は、KeyboardAutoManagerScroll.Disconnect 名前空間内の Microsoft.Maui.Platform メソッドを呼び出すことで無効にすることができます。 無効にした後、KeyboardAutoManagerScroll.Connect メソッドを呼び出すと、動作をもう一度有効にすることができます。
  • シェル アプリでタブの色を設定する方法は、一部のプラットフォームで変更されています。 詳細については、「タブの 外観」を参照してください。
  • アプリのプロジェクト ファイルで $(ApplicationIdGuid) ビルド プロパティの値を指定する必要はありません。 これは、.NET MAUI Windows アプリでは、アプリ ID として GUID が不要になり、代わりに $(ApplicationId) ビルド プロパティの値をアプリ ID として使用するためです。 そのため、com.mycompany.myapp など、すべてのプラットフォームで同じ逆ドメイン形式のアプリ ID が使用されるようになりました。
  • .NET MAUI Mac Catalyst アプリは、メニュー バーのメニュー項目が 50 個に制限されなくなりました。
  • Microsoft.Maui.Graphics名前空間の PlatformImage.FromStream メソッドを使用して、W2DImageLoadingService クラスを使用する必要なく、Windows にイメージを読み込むことができます。
  • Android では、アニメーションはシステム アニメーションの設定を考慮します。 詳細については、「 基本アニメーション」を参照してください。
  • 中央パッケージ管理 (CPM) が有効になっている場合、<UseMaui>true</UseMaui> プロジェクト プロパティに必要な NuGet パッケージが自動的に含まれるようになりました。

[パフォーマンス]

.NET MAUI 8 には多くのパフォーマンス変更があります。 これらの変更は、次の 5 つの領域に分類できます。

詳細については、「 .NET MAUI での .NET 8 パフォーマンスの向上」を参照してください。

.NET 7 から .NET 8 へのアップグレード

.NET 7 から .NET 8 にプロジェクトをアップグレードするには、 Visual Studio 17.8 以降、または スタンドアロン インストーラーdotnet workload install maui コマンドを使用して、.NET 8 と .NET MAUI ワークロードをインストールします。

次に、 .csproj ファイルを開き、ターゲット フレームワーク モニカー (TFM) を 7 から 8 に変更します。 net7.0-ios13.6 などの TFM を使用している場合は、プラットフォームのバージョンを必ず一致させるか、完全に削除してください。 次の例は、.NET 7 プロジェクトの TFM を示しています。

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

次の例は、.NET 8 プロジェクトの TFM を示しています。

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

明示的なパッケージ参照は、次の .NET MAUI NuGet パッケージの .csproj ファイルにも追加する必要があります。

<ItemGroup>
    <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
    <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
</ItemGroup>

中央パッケージ管理 (CPM) を使用する場合、.NET MAUI パッケージは自動的に参照されなくなり、明示的に追加する必要があります。 アセット (MauiImageMauiAssetなど) のみを含むプロジェクトの場合は、(Microsoft.Maui.Controlsではなく) Microsoft.Maui.Resizetizer パッケージを追加するだけで十分です。

$(MauiVersion)変数は、インストールした .NET MAUI のバージョンから参照されます。 これをオーバーライドするには、 $(MauiVersion) ビルド プロパティを .csproj ファイルに追加します。

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
        <UseMaui>True</UseMaui>
        <MauiVersion>8.0.3</MauiVersion>
    </PropertyGroup>
</Project>

これは、 夜間フィード からアドホック ビルドを使用する場合や、プル要求からダウンロードしたビルドを使用する場合に便利です。

さらに、 $(ApplicationIdGuid) ビルド プロパティは、.NET 8 の .csproj ファイルから削除できます。 詳細については、「動作の 変更」を参照してください。

アップグレードしたアプリを初めてビルドする前に、bin フォルダーと obj フォルダーを削除してください。

.NET 8 の .NET MAUI アプリのプロジェクト テンプレートを使用すると、 $(Nullable) ビルド プロパティを使用して、プロジェクトの null 許容コンテキストを有効にします。 詳細については、「 Null 許容」を参照してください。

こちらも参照ください