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

uri*_*rig 4 azure .net-core azure-devops dotnetcorecli

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

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

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

到目前为止,一切都很好。此步骤创建两个 zip 文件,每个文件对应一个 Web 应用程序。

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

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

uri*_*rig 8

似乎当像我一样设置publishWebProjectsTrue时,命令publishforDotNetCoreCLI@2将仅发布 Web 应用程序项目。我现在意识到,这是相当明显的。

我找到的满足我需要的解决方案是设置publishWebProjectsFalse并添加projects: '**/*.csproj'.

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

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