如何在Azure Devops工件中通过多个项目的Web解决方案发布特定项目

时间:2020-09-25 12:42:30

标签: azure-devops

我在Visual Studio的单个Web解决方案中有多个项目。我已将整个解决方案上传到DevOps中。现在,我要在工件中发布特定项目(不是所有项目)。请让我知道我该怎么做。还要为此任务在YAML文件中要求什么规范?

2 个答案:

答案 0 :(得分:0)

在项目中,您应该设置需要发布的特定项目:

# Publish projects to specified folder.
- task: DotNetCoreCLI@2
  displayName: 'dotnet publish'
  inputs:
    command: publish
    publishWebProjects: false
    projects: 'MyDirectory/MyProjectToBePublished.csproj'
    arguments: '-o $(Build.ArtifactStagingDirectory)/Output'
    zipAfterPublish: true
    modifyOutputPath: true

请记住有关publishing pipeline artifacts的信息。

如果要发布所有项目,则需要将projects输入更改为此**/*.csproj

steps:
# Publish projects to specified folder.
- task: DotNetCoreCLI@2
  displayName: 'dotnet publish'
  inputs:
    command: publish
    publishWebProjects: false
    projects: '**/*.csproj'
    arguments: '-o $(Build.ArtifactStagingDirectory)/Output'
    zipAfterPublish: true
    modifyOutputPath: true

- task: PublishBuildArtifacts@1

然后您将获得多个项目发布为工件:

enter image description here

答案 1 :(得分:0)

如何在工件中发布特定项目?

您可以在YAML审核页面中搜索“发布工件”任务,然后单击发布构建工件。将要发布的路径设置为要发布的项目的路径,然后将此任务添加到YAML。您也可以参考我的screenshot about the steps

YAML文件中需要什么规范才能完成此任务?

我们可以在YAML中添加两个触发器,以特定于我们要包含或排除的项目的路径。

指定路径时,必须显式指定要触发的分支。您不能仅使用路径过滤器来触发管道。您还必须具有分支过滤器,并且与路径过滤器匹配的更改文件必须来自与分支过滤器匹配的分支。

有关更多信息,请参阅this doc

YAML触发器:

# specific path build
trigger:
  branches:
    include:
    - master
    - releases/*
  paths:
    include:
    - docs/*
    exclude:
    - docs/README.md