Azure DevOps:为什么 DotNetCoreCLI@2 任务不发布(zip)我的 Azure Functions 项目?

Azure DevOps: Why does the DotNetCoreCLI@2 task not publish (zip) my Azure Functions project?

我有一个 .NET Core 3.1 解决方案,其中包含 2 个 Web 应用程序项目。我正在为 CI/CD 使用 Azure DevOps Pipelines,因此我在 azure-pipelines.yml 文件中定义了构建-测试-发布步骤。

我用来打包我的两个 Web 应用程序项目的产品的任务是相当标准的,并且基于 DotNetCoreCLI@2 任务:

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

到目前为止一切顺利。此步骤创建两个 zip 文件,每个 web 应用程序一个。

但是,在我的解决方案中添加了一个新的 Azure Functions 项目后,其产品的压缩方式有所不同。因此,我无法将其部署到 Azure。

我猜任务默认只发布 Web 应用程序项目。如何让它也适用于我的 Azure Functions 项目?

似乎当我将publishWebProjects设置为True时,DotNetCoreCLI@2publish命令将只发布Web应用程序项目。我现在意识到,这是很明显的。

我找到的解决方案是将 publishWebProjects 设置为 False 并添加 projects: '**/*.csproj'.

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

现在任务为我的解决方案中的每个项目创建一个 zip 文件。这包括一些测试项目,但我不介意。如果您介意的话,可以只列出要在 projects 属性中压缩的特定项目。