我有一个包含 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@2
的publish
命令只会发布 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
属性中压缩的特定项目。