適用於 .NET 9 的 .NET MAUI 新功能

.NET 多平臺應用程式 UI (.NET MAUI) 在 .NET 9 中的重點在於改善產品品質。 這包括擴充測試涵蓋範圍、端對端案例測試,以及錯誤修正。 如需 .NET MAUI 9 Preview 中產品品質改善的詳細資訊,請參閱下列版本資訊:

重要

由於使用外部相依性,例如 Xcode 或 Android SDK 工具,.NET MAUI 支援原則與 .NET 和 .NET Core 支持原則不同。 如需詳細資訊,請參閱 .NET MAUI 支持原則

在 .NET 9 中,.NET MAUI 會隨附為 .NET 工作負載和多個 NuGet 套件。 這種方法的優點是可讓您輕鬆地將專案釘選到特定版本,同時可讓您輕鬆地預覽未發行或實驗性組建。 當您建立新的 .NET MAUI 專案時,必要的 NuGet 套件會自動新增至專案。

如需 .NET 9 新功能的相關信息,請參閱 .NET 9 的新功能。

Android

使用 API 34 和 JDK 17 的 .NET Android 9 Preview 包含減少建置時間的工作,以及改善應用程式的可修剪性,以減少大小並改善效能。 如需 .NET Android 9 Preview 的詳細資訊,請參閱下列版本資訊:

資產套件

.NET Android 9 Preview 3 引進了將資產放入另一個 套件的功能,稱為資產套件。 這可讓您上傳通常大於Google Play所允許的基本套件大小的遊戲和應用程式。 藉由將這些資產放入個別套件中,您可以上傳大小高達 2Gb 的套件,而不是 200Mb 的基本套件大小。

重要

資產套件只能包含資產。 在 .NET Android 的情況下,這表示具有 AndroidAsset 建置動作的專案。

.NET MAUI 應用程式會透過 MauiAsset 建置動作定義資產。 您可以透過 AssetPack 屬性指定資產套件:

<MauiAsset
    Include="Resources\Raw\**"
    LogicalName="%(RecursiveDir)%(Filename)%(Extension)"
    AssetPack="myassetpack" />

注意

其他平臺將會忽略其他元數據。

如果您有想要放在資產套件中的特定專案,您可以使用 Update 屬性來定義 AssetPack 元資料:

<MauiAsset Update="Resources\Raw\MyLargeAsset.txt" AssetPack="myassetpack" />

資產套件可以有不同的傳遞選項,可控制您的資產何時會在裝置上安裝:

  • 安裝時間套件會與應用程式同時安裝。 此套件類型的大小最多可達 1 Gb,但您只能有其中一個。 此傳遞類型是以 InstallTime 元數據指定。
  • 快速追蹤套件會在應用程式完成安裝後不久安裝。 在安裝這種類型的套件時,應用程式將能夠啟動,因此您應該先檢查它已完成安裝,然後再嘗試使用資產。 這種資產套件的大小最多可達 512 Mb。 此傳遞類型是以 FastFollow 元數據指定。
  • 除非應用程式特別要求裝置,否則隨選套件永遠不會下載到裝置。 所有資產套件的總大小不能超過 2Gb,而且您最多可以有 50 個不同的資產套件。 此傳遞類型是以 OnDemand 元數據指定。

在 .NET MAUI 應用程式中,可以使用 上的 MauiAsset屬性來指定DeliveryType傳遞類型:

<MauiAsset Update="Resources\Raw\myvideo.mp4" AssetPack="myassetpack" DeliveryType="FastFollow" />

如需 Android 資產套件的詳細資訊,請參閱 Android 資產套件

iOS

iOS、tvOS、Mac Catalyst 和 macOS 上的 .NET 9 Preview 會針對下列平臺版本使用 Xcode 15.2:

  • iOS:17.2
  • tvOS:17.2
  • Mac Catalyst:17.2
  • macOS:14.2

如需 iOS、tvOS、Mac Catalyst 和 macOS 上 .NET 9 Preview 的詳細資訊,請參閱下列版本資訊:

繫結

.NET iOS 9 Preview 3 引進了適用於 iOS 系結之 .NET 的多目標版本的功能。 例如,連結庫專案可能需要建置兩個不同的 iOS 版本:

<TargetFrameworks>net9.0-ios17.0;net9.0-ios17.2</TargetFrameworks>

這會產生兩個連結庫,一個使用 iOS 17.0 系結,另一個使用 iOS 17.2 系結。

重要

應用程式專案應一律以最新的 iOS SDK 為目標。

另請參閱