无法在Visual Studio Mac/Windows中创建MAUI项目发布归档
.NET MAUI迁移项目归档失败(VS Windows/Mac)排查与解决
Windows端:Unzip任务路径格式错误
报错核心:System.NotSupportedException: The given path's format is not supported.,日志显示_DotNetRootRemoteDirectory路径混合了正斜杠与反斜杠(/Users/asiadmin\Library\Caches\Xamarin\XMA\SDKs\dotnet/),导致路径解析失败。
解决步骤:
- 修正远程路径格式:在Windows的VS中进入项目属性→iOS构建→高级,手动设置DotNetRootRemoteDirectory为纯Unix格式路径:
/Users/asiadmin/Library/Caches/Xamarin/XMA/SDKs/dotnet/ - 清理XMA缓存:
- Windows端删除
C:\Users\<你的用户名>\AppData\Local\Xamarin\XMA - Mac端删除
/Users/asiadmin/Library/Caches/Xamarin/XMA - 重启VS和Mac构建主机
- Windows端删除
- 迁移项目到无空格路径:当前项目路径包含空格(
ASI Applications),将项目移动到无空格、无特殊字符的目录(如C:\VSLocal\ASIApplications\...)后重试
Mac端:ReadItemsFromFile XML根元素缺失
报错核心:System.Xml.XmlException: Root element is missing.,提示存在空或损坏的XML配置文件,清理后错误消失但归档无响应,需进一步排查:
解决步骤:
- 检查XML配置文件:逐一验证项目中的
Info.plist、Entitlements.plist及迁移遗留的Xamarin相关XML文件(如iOSManifest.xml),确保文件非空且有正确的根元素(如<plist>) - 清理MSBuild缓存:删除Mac端
~/Library/Caches/MSBuild,执行Clean Solution后重建项目 - 验证归档配置:在VS Mac中选择Release配置,目标架构设为
ios-arm64,进入项目选项→iOS发布,确认签名身份、配置文件与App Store发布要求匹配
通用排查与修复方案
- 升级工具链:将Windows和Mac的Visual Studio更新至最新稳定版,确保MAUI、Xamarin.iOS工具包为最新版本
- 手动执行归档命令:
- Windows端命令行:
dotnet publish -f net8.0-ios -c Release /p:ArchiveOnBuild=true,查看详细错误输出 - Mac端终端:
msbuild /t:Archive /p:Configuration=Release /p:Platform=iOS
- Windows端命令行:
- 清理csproj冗余配置:对比官方MAUI项目模板的
.csproj文件,移除迁移遗留的Xamarin特定属性(如旧打包、签名配置),确保MAUI打包属性正确(例如<EnableAssemblyILStripping>true</EnableAssemblyILStripping>) - 验证签名完整性:确认Release配置下的签名身份未过期,配置文件与App ID、发布类型(App Store)匹配
内容的提问来源于stack exchange,提问作者rgorr
相关产品推荐
相关产品推荐

