首页
/ 解决 .NET MAUI Android 项目构建时找不到资源文件路径的问题

解决 .NET MAUI Android 项目构建时找不到资源文件路径的问题

2025-07-05 12:52:00作者:贡沫苏Truman

在开发 .NET MAUI Android 应用时,开发者可能会遇到一个特定的构建错误,提示无法找到资源文件路径。这个问题通常发生在尝试归档(archive)应用以发布到Google Play商店时。

问题现象

当使用 Visual Studio 构建 .NET MAUI Android 项目并尝试生成 APK 或 AAB 文件时,构建过程可能会失败并显示以下错误信息:

XABLD7023: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\<nuget文件夹路径>\microsoft.maui.controls.core\8.0.<版本号>\lib\net8.0-android34.0\<本地化文件夹>\shrunk\Microsoft.Maui.Controls.resources.dll'

错误表明构建系统在特定路径下找不到预期的资源文件。

问题根源

经过分析,这个问题与 Microsoft.Maui.Controls.Core NuGet 包中的文件结构有关。在某些版本中(如8.0.91),NuGet包内的文件结构可能不完整,缺少必要的"shrunk"文件夹和资源文件。

解决方案

临时解决方案

  1. 导航到 NuGet 包缓存目录中的 Microsoft.Maui.Controls.Core 文件夹
  2. 对于每个本地化文件夹(如zh-Hans、zh-Hant等),手动创建"shrunk"子文件夹
  3. 将对应本地化文件夹中的"Microsoft.Maui.Controls.resources.dll"文件复制到新建的"shrunk"文件夹中

长期解决方案

  1. 创建一个全新的 .NET MAUI 项目模板
  2. 将项目中的 Microsoft.Maui.Controls.Core 更新到最新版本(如8.0.91)
  3. 构建并归档这个新项目

这个操作会触发 NuGet 包管理器的修复机制,自动补全缺失的文件结构。之后,原始项目也可以正常构建。

预防措施

  1. 定期清理 NuGet 缓存,避免残留不完整的包版本
  2. 在升级 MAUI 版本后,先创建并构建一个测试项目,确保环境正常
  3. 考虑使用统一的 NuGet 包管理策略,确保团队成员使用相同的包版本

技术背景

这个问题涉及到 .NET MAUI 构建过程中的资源处理机制。在构建 Android 应用时,系统会尝试优化资源文件,将其放入"shrunk"文件夹中。当预期的文件夹结构不完整时,构建过程就会失败。

值得注意的是,这个问题在不同版本的 Microsoft.Maui.Controls.Core 中表现不一致,说明它可能与特定版本的打包过程有关。开发者在遇到类似问题时,可以首先检查 NuGet 包的文件结构是否完整。

登录后查看全文
热门项目推荐
相关项目推荐