本地 Azure DevOps Server 2019:备份保留构建的工件 背景我目前使用的我目前面临的问题

问题描述

背景

我目前正在将我的内部部署 Team Foundation Server 2015 (Update 4) 迁移到 Azure DevOps Server 2019

我目前使用的

我构建了一个 C# 控制台应用程序,该应用程序扫描了先前版本 (TFS 2015) 中的构建机器,检查每个构建上的 KeepForever 标记。如果它存在 - 将构建目录的内容备份到我的远程备份服务器。否则,如果定义的保留期已过,它将清理代理的目录。我能够使用 Microsoft.TeamFoundation.Client.dllTfsTeamProjectCollection 类专门做到这一点:

IBuildDefinition[] BuildDefinitionArray = Builder.BuildsServer.QueryBuildDefinitions(TeamProjectName);

foreach (var BuildDefinition in BuildDefinitionArray)
{
    // Create CreateBuildDetailSpec without InformationTypes to speed up (A LOT) the function time
    var BuildDetailSpectator = Builder.BuildsServer.CreateBuildDetailSpec(TeamProjectName,BuildDefinition.Name);
    BuildDetailSpectator.InformationTypes = null;

    // Find all Builds that answer the to the `BuildDetailSpectator`
    IBuildQueryResult BuildQueryResult = Builder.BuildsServer.QueryBuilds(BuildDetailSpectator);

    for each (var BuildResult in BuildQueryResult.Builds)
    {
        // Get build's files full path (drop location)
        string BuildDropLocationPath = BuildResult.DropLocation;

        // Check whether the build is RETAINED
        if (BuildResult.KeepForever)
        { ... }
    }
}

我目前面临的问题

看起来这个解决方案现在已经过时了,而且在使用较新版本的 ADO 和 .NET Core 时几乎已经损坏。通过互联网搜索,我找到了一些工具,例如Post Build Cleanupdownloading agent's artifacts using Microsoft's docs。它们似乎都提供了整个解决方案的一部分,但似乎没有任何效果,因为我需要它-意思是:标记为“无限期保留”的构建内容将被移动到另一个位置(备份服务器)。>

我应该提到 Azure DevOps Server 2019 使用 v2.153.1 代理。

编辑:我必须说用于解决方案的范围\语言对我来说并不重要,只要它允许我访问 DevOps 服务器并备份所有不同的“永远保留”构建的工件。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)