问题描述
背景
我目前正在将我的内部部署 Team Foundation Server 2015 (Update 4)
迁移到 Azure DevOps Server 2019
。
我目前使用的
我构建了一个 C# 控制台应用程序,该应用程序扫描了先前版本 (TFS 2015) 中的构建机器,检查每个构建上的 KeepForever
标记。如果它存在 - 将构建目录的内容备份到我的远程备份服务器。否则,如果定义的保留期已过,它将清理代理的目录。我能够使用 Microsoft.TeamFoundation.Client.dll
和 TfsTeamProjectCollection
类专门做到这一点:
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 Cleanup 和downloading agent's artifacts using Microsoft's docs。它们似乎都提供了整个解决方案的一部分,但似乎没有任何效果,因为我需要它-意思是:标记为“无限期保留”的构建内容将被移动到另一个位置(备份服务器)。>
我应该提到 Azure DevOps Server 2019 使用 v2.153.1
代理。
编辑:我必须说用于解决方案的范围\语言对我来说并不重要,只要它允许我访问 DevOps 服务器并备份所有不同的“永远保留”构建的工件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)