.NET MAUI for .NET 9 中的新增功能

.NET 9 中的 .NET Multi-platform App UI (.NET MAUI) 侧重于提升产品质量。 这包括扩展测试覆盖范围、端到端方案测试和 bug 修复。 若要详细了解 .NET MAUI 9 预览版中的产品质量提升情况,请参阅以下发行说明:

重要

由于使用外部依赖项(例如 Xcode 或 Android SDK Tools),.NET MAUI 支持策略与 .NET 和 .NET Core 支持策略不同。 有关详细信息,请参阅 .NET MAUI 支持策略

在 .NET 9 中,.NET MAUI 作为 .NET 工作负载和多个 NuGet 包提供。 这种方法的优势在于,它使你能够轻松地将项目固定到特定版本,同时使你能够轻松预览未发布的版本或实验性版本。 创建新的 .NET MAUI 项目时,所需的 NuGet 包会自动添加到项目中。

控件增强功能

.NET 9 中的 .NET MAUI 还包括控件增强功能。

软键盘输入支持

.NET MAUI 9 预览版 4 新增了对 PasswordDateTime 的软键盘输入支持。 可以针对 EditorEntry 控件启用这些功能:

<Entry Keyboard="Date" />

Android

.NET for Android 9 预览版使用 API 34 和 JDK 17,可以缩短生成时间,以及改善应用的可剪裁性,以减小大小并提高性能。 有关 .NET for Android 9 预览版的详细信息,请参阅以下发行说明:

资产包

.NET for Android 9 预览版 3 引入了将资产放入单独包(称为资产包)的功能。 此功能支持上传通常大于 Google Play 允许的基本包大小的游戏和应用。 通过将这些资产放入单独的包中,可以上传大小高达 2Gb 的包,而非只能上传 200Mb 大小的基本包。

重要

资产包只能包含资产。 对于 .NET for 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" />

资产包可以有不同的传递选项,用于控制何时在设备上安装资产:

  • 安装时包与应用同时安装。 此类型包的大小最多可为 1Gb,但只能有一个此类型的包。 此传递类型使用 InstallTime 元数据指定。
  • 应用完成安装后不久,即会安装快速跟进包。 在安装这种类型的包时,该应用将能够启动,因此应该先检查它是否已完成安装,然后再尝试使用资产。 此类资产包的大小可达 512Mb。 此传递类型使用 FastFollow 元数据指定。
  • 按需包只有在应用专门发出请求时,才会下载到设备。 所有资产包的总大小不能超过 2Gb,最多可以有 50 个单独的资产包。 此传递类型使用 OnDemand 元数据指定。

在 .NET MAUI 应用中,可以使用 MauiAsset 上的 DeliveryType 属性指定传递类型:

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

有关 Android 资产包的详细信息,请参阅 Android 资产包

Android 15 beta 1 支持

适用于代号为“Vanilla Ice Cream”的 Android 15 第一个 beta 版的 .NET for Android 预览版 4 .NET 绑定。 若要为这些 API 生成解决方案,请更新项目的目标框架:

<TargetFramework>net9.0-android35</TargetFramework>

iOS

iOS、tvOS、Mac Catalyst 和 macOS 上的 .NET 9 预览版对以下平台版本使用 Xcode 15.2:

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

有关 iOS、tvOS、Mac Catalyst 和 macOS 上的 .NET 9 预览版的详细信息,请参阅以下发行说明:

绑定

.NET for iOS 9 预览版 3 引入了可对多目标 .NET 版本进行 iOS 绑定的功能。 例如,可能需要为两个不同的 iOS 版本生成某个库项目:

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

这将生成两个库,一个使用 iOS 17.0 绑定,一个使用 iOS 17.2 绑定。

重要

应用项目应始终面向最新的 iOS SDK。

适用于 iOS 和 Mac Catalyst 的本机 AOT

在 .NET for iOS 9 预览版 4 中,适用于 iOS 和 Mac Catalyst 的本机预先(Ahead of Time,AOT)编译利用完整剪裁来减少应用的包大小和启动性能。 这是一项发布功能,当你准备好交付应用时可以使用它。

重要

应用及其依赖项必须完全可剪裁才能利用此功能。

另请参阅