.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 新增了对 Password
、Date
和 Time
的软键盘输入支持。 可以针对 Editor 和 Entry 控件启用这些功能:
<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)编译利用完整剪裁来减少应用的包大小和启动性能。 这是一项发布功能,当你准备好交付应用时可以使用它。
重要
应用及其依赖项必须完全可剪裁才能利用此功能。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈