VSTS - Как написать определение сборки с фазами, которые сосредоточены на собственных эксклюзивных проектах того же решения? - PullRequest
0 голосов
/ 30 июня 2018

У меня есть решение, в котором есть .netcore2.1 webapi и приложение xamarin.iOS.
Эти проекты не зависят друг от друга (не совсем верно, поскольку они ссылаются на общий проект, но это не должно относиться к вопросу).

Мое определение VSTS состоит из двух этапов:

  • один для создания webapi (называемый azureAndBackend) в очереди vsts Hosted VS2017
  • еще один для создания приложения (называемого iOS) в очереди VST Hosted MacOS Preview
- phase: azureAndBackend
  displayName: Azure and backend
  queue:
    name: Hosted VS2017
...
- phase: iOS
  displayName: iOS 
  dependsOn: azureAndBackend
  queue:
    name: Hosted macOS Preview

Фаза azureAndBackend в порядке. Однако фаза ios завершается с ошибкой при выполнении задачи dotnet restore:

- task: NuGetCommand@2
  displayName: NuGet restore
  inputs:
      restoreSolution: '**/*.sln'

Действительно, он восстанавливает пакеты для всего решения (включая webapi), в то время как .netcore 2.1 sdk еще не установлен в очереди Предварительного просмотра размещенного macOS (см. Страницу spec ).

Итак, я попробовал следующее:

- 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 является копией конфигурации Release, но там, где я не собираю проект webapi.

Вопрос в том, как написать определение сборки, как если бы в решении не было проекта webapi?

ОБНОВЛЕНИЕ

Я думаю, что обходной путь - создать 3 решения

  • тот, который у меня уже есть и разрабатывается на
  • только с проектом iOS
  • один только с проектом webapi

Тогда фазы будут строить свое собственное решение. Это не «реальный» ответ на вопрос.

1 Ответ

0 голосов
/ 30 июня 2018

Для всех задач убедитесь, что вы указываете на конкретные файлы решений и каталоги решений. Ваш **/*.sln будет строить все решения в папке источников.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...