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

4
我有一个.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

迄今为止还不错。这一步创建了两个压缩文件,一个用于每个 Web 应用程序。

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

我猜这个任务默认只发布 Web 应用程序项目。我该如何让它也能够处理我的 Azure Functions 项目呢?


1个回答

8
当设置publishWebProjectsTrue时(我已经这样做了),似乎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参数... - Sunib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接