gpt4 book ai didi

visual-studio - Azure Devops 管道 - 将 "VS Build"步连接到 "Archive Files"步

转载 作者:行者123 更新时间:2023-12-04 05:35:33 26 4
gpt4 key购买 nike

我正在尝试使用 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 Build 步骤的输出目录?

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

    最佳答案

    根据日志,构建输出在d:\a\1\s\... s文件夹是源目录,要访问此文件夹有预定义的变量:Build.SourcesDirectory .
    所以不要使用 $(Build.BinariesDirectory)使用上面的变量:

    rootFolderOrFile: '$(Build.SourcesDirectory)'
    但是现在您将获得包含 dll 在内的源文件的 zip,因此请考虑将路径附加到您想要的文件夹。
    例如:
    rootFolderOrFile: '$(Build.SourcesDirectory)/obj/Release'

    关于visual-studio - Azure Devops 管道 - 将 "VS Build"步连接到 "Archive Files"步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56731307/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com