【问题标题】:Where is the location of Release Artifacts on TFS/Azure DevOpsTFS/Azure DevOps 上的发布工件的位置在哪里
【发布时间】:2022-01-02 05:27:03
【问题描述】:

当您在发布定义中使用发布工件时,谁能告诉我它来自哪里?

我目前正在使用本地 TFS(v15 更新 1)来处理构建和发布。我相信这个版本非常接近当前 Azure DevOps 文档所描述的“经典”。

我有一个构建定义,它使用 Build.ArtifactStagingDirectory 将工件输出到代理上的默认本地路径 (c:\agent_work\1\a)。我还将工件发布/复制到网络共享。

我有一个发布定义,它将构建定义作为链接的工件源引用。因此,当我创建一个新版本时,版本定义从哪里获得工件?它是从我发布的网络共享中获得的吗?它是从源代码管理中获得的吗?我怎么知道它是从 TFS 或网络共享中获取的?

我知道 Build.ArtifactStagingDirectory 在每次构建时都会被删除,所以我知道它不可能来自那个位置。

【问题讨论】:

  • 你试过$(System.DefaultWorkingDirectory)吗?
  • 虽然我回答了你的具体问题,但我很想知道为什么这与你相关——这些工件的存储机制是有意设计为对用户透明的。
  • @DanielMann 感谢您提供的信息。问的原因是我正在与一个使用 Release 分支作为 Dev 分支的客户合作。他们无法改变这一点,所以我想知道版本从哪里得到它的工件。如果它从 TFS 获取它们可能会导致问题,因为它们会不断检查更改。根据您的信息,我今天早上进行了一项测试,将一个简单的文本文件放在 Build.ArtifactStagingDirectory 和我的网络共享中。该版本从网络共享中获取了确认您的答案的工件。非常感谢您的帮助。

标签: azure-devops tfs azure-pipelines tfsbuild


【解决方案1】:

您将发布定义绑定到构建定义。构建定义可以在运行时发布工件。

您的发布定义查看构建运行,查看它发布的工件,然后从发布它们的任何位置检索它们。此可以是文件共享,也可以位于 TFS/Azure DevOps 实例本身内。不是源代码控制或 Azure Artifacts,而是完全用于构建的内部存储。

现在直接回答您的问题: 你怎么知道神器是从哪里来的?通过查看构建运行。你怎么知道这些工件将来会在哪里发布?通过查看构建定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2021-02-18
    • 2019-08-30
    相关资源
    最近更新 更多