【问题标题】:Azure Devops Pipelines - connect "VS Build" step to "Archive Files" stepAzure Devops Pipelines - 将“VS Build”步骤连接到“Archive Files”步骤
【发布时间】:2019-06-24 07:00:39
【问题描述】:

我正在尝试使用 Azure Devops Pipelines,我的第一个宠物项目是我正在尝试构建的简单 .NET 命令行应用程序。

我选择了“VS Build .NET Desktop”任务模板,构建本身工作正常 - 编译这些位没有问题

YAML:

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

日志:

##[section]Starting: VSBuild
==============================================================================
Task         : Visual Studio build
Description  : Build with MSBuild and set the Visual Studio version property
Version      : 1.151.2
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/visual-studio-build
==============================================================================

##[command]"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" "d:\a\1\s\AzureDevopsTaskCreator.sln" 
...(lots of lines omitted)
CopyFilesToOutputDirectory:
  Copying file from "d:\a\1\s\obj\Release\AZTaskCreator.exe" to "d:\a\1\s\bin\Release\AZTaskCreator.exe".
  AZTaskCreator -> d:\a\1\s\bin\Release\AZTaskCreator.exe
  Copying file from "d:\a\1\s\obj\Release\AZTaskCreator.pdb" to "d:\a\1\s\bin\Release\AZTaskCreator.pdb".

但现在我想以某种方式发布此构建的输出,以便我可以下载它(或将它部署到某个地方)。但我一直在努力解决这些问题。

所以我尝试先将构建输出压缩到存档中(然后可以发布):

YAML

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.BinariesDirectory)'
    includeRootFolder: true
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/AZCreateTasks$(Build.BuildId).zip'
    replaceExistingArchive: true
    verbose: true

日志:

##[section]Starting: ArchiveFiles  
##[command]d:\a\_tasks\ArchiveFiles_d8b84976-e99a-4b86-b885-4849694435b0\2.151.2\7zip\7z.exe a -tzip -bb3 d:\a\1\a\AZCreateTasks8.zip @d:\a\_temp\yat6561e8redmiomp7bbuik9

我的问题是:如何我可以告诉“存档文件”步骤使用以前构建的输出目录吗?我假设默认的 $(Build.BinariesDirectory) 会这样做 - 但显然,它不会:

  • VS Build 的输出到 d:\a\1\s\bin\Release\ 目录
  • 存档文件步骤将文件压缩到d:\a\_temp\yat6561e8redmiomp7bbuik9 目录中

如何“连接”这两个步骤,以便“存档文件”步骤真正尊重并使用 VS 构建步骤的输出目录?

我很难找到任何有用的文档,说明这里有什么样的“系统预定义”魔法变量,以及如何影响这些......

【问题讨论】:

    标签: visual-studio azure-devops azure-pipelines


    【解决方案1】:

    根据日志,构建输出在 d:\a\1\s\... s 文件夹它的源目录中,要访问此文件夹有预定义的变量:Build.SourcesDirectory

    所以不要使用$(Build.BinariesDirectory),而是使用上面的变量:

    rootFolderOrFile: '$(Build.SourcesDirectory)'
    

    但是现在您将获得一个包含源文件的 zip,包括 dll,因此请考虑将路径附加到您想要的文件夹。

    例如:

    rootFolderOrFile: '$(Build.SourcesDirectory)/obj/Release'
    

    【讨论】:

      猜你喜欢
      • 2022-08-18
      • 1970-01-01
      • 2018-09-02
      • 2019-07-28
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 2021-04-30
      相关资源
      最近更新 更多