Azure devops VST-如何编写一个包含阶段的构建定义,这些阶段专注于同一解决方案各自的专有项目?

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:

我有一个解决方案,它有一个.netcore2.1 webapi和一个xamarin.iOS应用程序。
这些项目并不相互依赖(因为它们引用了一个共享项目,所以不完全正确,但这与问题无关)

我的vsts构建定义由两个阶段组成:

  • 一个是在vsts托管的VS2017队列上构建webapi(称为azureAndBackend)
  • 另一个是在vsts托管的macOS预览队列上构建应用程序(称为iOS)
azureAndBackend阶段很好。 但是,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.