Azure devops VST-如何编写一个包含阶段的构建定义,这些阶段专注于同一解决方案各自的专有项目?
我有一个解决方案,它有一个.netcore2.1 webapi和一个xamarin.iOS应用程序。Azure devops VST-如何编写一个包含阶段的构建定义,这些阶段专注于同一解决方案各自的专有项目?,azure-devops,yaml,azure-pipelines,azure-pipelines-build-task,Azure Devops,Yaml,Azure Pipelines,Azure Pipelines Build Task,我有一个解决方案,它有一个.netcore2.1 webapi和一个xamarin.iOS应用程序。 这些项目并不相互依赖(因为它们引用了一个共享项目,所以不完全正确,但这与问题无关) 我的vsts构建定义由两个阶段组成: 一个是在vsts托管的VS2017队列上构建webapi(称为azureAndBackend) 另一个是在vsts托管的macOS预览队列上构建应用程序(称为iOS) azureAndBackend阶段很好。 但是,ios阶段在dotnet还原任务中失败: - task:
这些项目并不相互依赖(因为它们引用了一个共享项目,所以不完全正确,但这与问题无关) 我的vsts构建定义由两个阶段组成:
- 一个是在vsts托管的VS2017队列上构建webapi(称为azureAndBackend)
- 另一个是在vsts托管的macOS预览队列上构建应用程序(称为iOS)
dotnet还原任务中失败:
- task: NuGetCommand@2
displayName: NuGet restore
inputs:
restoreSolution: '**/*.sln'
事实上,它为整个解决方案(包括webapi)恢复软件包,而托管macOS预览队列中尚未安装.netcore 2.1 sdk(请参见该页)
因此,我尝试了以下方法:
- task: NuGetCommand@2
displayName: NuGet restore
inputs:
restoreSolution: '**/*.iOS/*.csproj'
然后恢复步骤就可以了。
但是,现在构建步骤失败:
- task: XamariniOS@2
displayName: 'Building iOS'
inputs:
solutionFile: '**/*.sln'
configuration: 'iOS'
错误是:
'/Users/vsts/agent/2.134.2/work/1/s/MyApp.Services.Interfaces/obj/project.assets.json' not found. Run a NuGet package restore to generate this file.
请注意,iOS
configuration是Release
配置的副本,但我不构建webapi项目
问题是如何编写构建定义,就好像解决方案中没有webapi项目一样
更新
我认为解决办法是创建3个解决方案
- 我已经拥有并发展的那个
- 一个只支持iOS项目
- 一个只支持webapi项目
然后阶段将构建自己的解决方案。
但这并不是问题的“真实”答案。对于所有任务,请确保指向特定的解决方案文件和解决方案目录。您的***.sln
将在sources文件夹中生成所有解决方案。DotNetCoreCli
任务将重点放在项目文件上,这很好,而Xamariios
任务将重点放在解决方案文件上,这是我问题的根源。
'/Users/vsts/agent/2.134.2/work/1/s/MyApp.Services.Interfaces/obj/project.assets.json' not found. Run a NuGet package restore to generate this file.