AppCenter构建Xamarin UWP应用报"找不到PathtoPublish"错误排查
问题本质
编译阶段完全成功(0警告、0错误),故障点是构建产物的路径匹配全链路失效:所有复制任务配置的源路径和实际编译输出的文件路径完全不匹配,复制时扫不到任何文件,最终发布环节因为暂存目录无文件、配置的发布路径本身不存在而报错。
高频触发原因
- 硬编码固定复制路径,没有适配4套UWP构建配置各自的实际输出目录,路径和真实输出位置存在偏差
- 对UWP打包输出位置的认知偏差:开启应用打包的UWP构建,不会把msix/appxbundle安装包输出到常规的
bin目录,而是默认输出到obj/<配置名>/<平台>/Bundle子文件夹,仅扫描bin目录会完全找不到对应文件 - 发布环节硬写了固定临时路径
D:\a\1\a\Build,没有和前面复制任务设置的暂存目录做联动,该路径在流水线工作目录中本身不存在
修复步骤
- 先在本地用每一套构建配置全量编译UWP项目,逐套确认安装包、pdb符号文件的真实输出路径,不要靠对IDE默认路径的记忆做配置
- 调整两个Copy Files任务的规则:
- 将源路径替换为对应UWP项目的实际输出目录,匹配规则设置为递归扫描,覆盖所有安装包、符号文件的后缀,避免因为层级问题扫不到文件
- 不要为4套构建配置单独写复制规则,用流水线内置变量拼接路径,统一适配所有配置的输出目录
- 调整Publish Build Artifacts任务的参数:
- 将
PathtoPublish替换为流水线内置的暂存目录变量$(Build.ArtifactStagingDirectory),删除硬编码的D:\a\1\a\Build配置 - 确保前面Copy Files任务的目标输出路径,和
PathtoPublish指向的路径完全一致
- 将
- 快速排错技巧:在第一个Copy Files任务前添加简单的命令行步骤,执行
dir /s /b *.msix *.appx *.pdb全仓库扫描,直接在构建日志里打印出所有编译生成文件的实际位置,照着日志返回的真实路径调整复制规则,无需反复试错
内容的提问来源于stack exchange,提问作者Martin H.
相关产品推荐
相关产品推荐

