【问题标题】:How to publish a specific project from a vs web solution of multiple projects in azure devops artifact如何从 azure devops artifact 中多个项目的 vs Web 解决方案发布特定项目
【发布时间】:2021-12-17 23:31:14
【问题描述】:

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

【问题讨论】:

  • 我在 yaml 中询问要发布的项目规范。但是,现在我的要求是我必须一次在工件中分别发布所有项目(使用他们自己的解决方案文件)。如何在 YAML 文件中指定?这是mvc项目

标签: azure-devops azure-pipelines


【解决方案1】:

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

# 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

然后您将把它作为工件发布为多个项目:

【讨论】:

  • 您好,感谢您的回复。但是,现在我的要求是我必须一次在工件中分别发布所有项目(使用他们自己的解决方案文件)。如何在 YAML 文件中指定?这是 mvc 项目。
  • 这解决了我的问题,谢谢! ..对于其他读者,记得也要发布工件
【解决方案2】:

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

您可以在 YAML 审核页面中搜索“发布工件”任务,然后点击发布构建工件。将 Path to publish 设置为您要发布的项目的路径,然后将此任务添加到 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

【讨论】:

    猜你喜欢
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多