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



我有一个包含 2 个 Web 应用程序项目的 .NET Core 3.1 解决方案。我正在使用适用于 CI/CD 的 Azure DevOps 管道,因此我在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属性中压缩的特定项目。

最新更新