【问题标题】:Azure DevOps: Why does the DotNetCoreCLI@2 task not publish (zip) my Azure Functions project?Azure DevOps:为什么 DotNetCoreCLI@2 任务不发布 (zip) 我的 Azure Functions 项目?
【发布时间】:2020-09-23 19:55:41
【问题描述】:

我有一个 .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 项目?

【问题讨论】:

标签: azure .net-core azure-devops dotnetcorecli


【解决方案1】:

似乎像我一样将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 属性中仅列出要压缩的特定项目。

【讨论】:

  • 噗。我刚刚调试了一段时间(很长时间),还发现了 publishWebProjects 行为。奇怪的是,他们显然忽略了 projects 参数作为默认值......
猜你喜欢
  • 2021-11-05
  • 2019-03-20
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 2020-08-16
相关资源
最近更新 更多