如何在Azure DevOps中安装.net6的iOS workload?
解决Azure DevOps .NET 6 iOS构建NETSDK1147报错方案
你遇到的报错是因为Azure DevOps默认macOS构建镜像未预装.NET 6对应的iOS workload,可通过以下两种推荐方案解决:
error NETSDK1147: To install these workloads, run the following command: dotnet workload install ios [/Users/runner/work/1/s/src/Application.iOS/Application.iOS.csproj]
方案一:前置命令手动安装
在你的构建流水线的dotnet build任务之前,新增一个Bash脚本任务,依次执行以下操作:
- 验证当前.NET SDK版本是否匹配项目需求:
dotnet --version - 安装iOS workload,建议添加
--skip-manifest-update参数避免清单版本和当前SDK不兼容:dotnet workload install ios --skip-manifest-update
如果需要和本地使用的workload版本完全对齐,可以额外添加--version <你本地的workload版本号>参数指定版本。
方案二:通过workload restore自动安装
适合项目依赖多个平台workload的场景,无需单独指定每个workload:
- 在仓库根目录添加
global.json文件,锁定项目使用的.NET 6 SDK版本,避免构建机多SDK版本冲突,示例内容如下:
{ "sdk": { "version": "6.0.417", "rollForward": "latestMinor" } }
将version字段替换为你本地使用的.NET 6 SDK版本即可。
- 在构建任务中,执行
dotnet build之前新增Bash任务,运行以下命令:dotnet workload restore
该命令会自动识别项目所需的全部workload并完成安装,适配性更强。
注意事项
- 不要使用sudo运行workload安装命令,否则会将workload安装到root用户的全局路径下,当前runner权限无法读取,会导致后续构建仍然找不到workload
- 如果你使用的是自托管macOS构建机,可以一次性将所需workload预装到构建机中,省去每次构建都安装的步骤,提升构建速度
内容的提问来源于stack exchange,提问作者Kzryzstof
相关产品推荐
相关产品推荐

