Azure DevOps: почему задача DotNetCoreCLI@2 не публикует (архивирует) мой проект Функций Azure?

У меня есть решение.NET Core 3.1, которое содержит 2 проекта веб-приложений. Я использую Azure DevOps Pipelines для CI/CD, поэтому у меня есть шаги сборки-тестирования-публикации, определенные вazure-pipelines.yml файл.

Задача, которую я использую для упаковки продуктов двух моих проектов веб-приложений, довольно стандартна и основана на задаче DotNetCoreCLI@2:

- task: DotNetCoreCLI@2
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

Все идет нормально. На этом этапе создаются два zip-файла, по одному для каждого веб-приложения.

Но после добавления нового проекта функций Azure в мое решение его продукты не заархивированы таким же образом. В результате я не могу развернуть его в Azure.

Я предполагаю, что по умолчанию задача состоит только в публикации проектов веб-приложений. Как я могу заставить его работать и в моем проекте Функций Azure?

1 ответ

Решение

Кажется, когда кто-то устанавливает publishWebProjects к True, как и у меня, то publish команда для DotNetCoreCLI@2будет публиковать только проекты веб-приложений. Что, как я теперь понимаю, довольно очевидно.

Решение, которое я нашел для своей потребности, - установить publishWebProjects к False а также добавить projects: '**/*.csproj'.

- task: DotNetCoreCLI@2
  inputs:
    command: publish
    publishWebProjects: False
    projects: '**/*.csproj'
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

Теперь задача создает zip-файл для каждого проекта в моем решении. Это включает несколько тестовых проектов, но я не против. Если кто-то не возражает, можно было бы, вероятно, перечислить только конкретные проекты, которые нужно заархивировать вprojects атрибут.

Другие вопросы по тегам