我在Visual Studio的单个Web解决方案中有多个项目。我已将整个解决方案上传到DevOps中。现在,我要在工件中发布特定项目(不是所有项目)。请让我知道我该怎么做。还要为此任务在YAML文件中要求什么规范?
答案 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
然后您将获得多个项目发布为工件:
答案 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