c# - 是否还有办法以编程方式在 C#、VS2019 中获取最新版本的 TFVC 存储库?
问题描述
我正在尝试用 C# 构建工具,以帮助自动化我工作的公司的构建和部署系统的一部分。我被分配到的最新工具是查看自上次发布以来 TFS 版本控制系统中特定文件组的任何成员是否已在服务器上发生更改。
为确保服务器上没有更改运行此自动化工具的机器尚未发现,我希望能够在 C# 代码中执行类似于tf vc get
命令行界面命令的操作到 TFVC。我在 Stack Overflow 上发现了一些关于如何执行此操作的文档和类似问题,但它们都是针对 VS2010 或更早版本的,并且它们引用的 API 不再在 Microsoft 网站上更新。
在较新版本的 Team Foundation Server 中,是否有任何方法可以以编程方式调用类似于 Visual Studio 源代码管理资源管理器中的“获取最新版本”命令的操作?
解决方案
Azure DevOps (TFS) Rest API 版本中不存在此操作,但您可以使用旧版本,它仍然适用于 TFS 2018/9。如果您安装Microsoft.TeamFoundation.ExtendedClient
NuGet,它应该在那里。
如何使用它的示例:
connection = new TfsTeamProjectCollection(new Uri("tfs url"));
connection.Authenticate();
var = versionControl = connection .GetService<VersionControlServer>();
var worksapce = versionControl.GetWorkspace("local-path-of-the-workspace");
// Do the "Get Latest":
workspace.Get();
另一种选择是使用 tf.exe 实用程序并像每个.exe
文件一样直接从 c# 代码执行它,例如:
string tfPath = "path/to/tf/exe"
string arguments = "vc get ......"
ProcessStartInfo info = new ProcessStartInfo(tfPath, arguments);
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process p = Process.Start(info);
p.WaitForExit();
推荐阅读
- python - 如何在熊猫脚本中禁用舍入
- python - 如何在列表推导中进行扩展
- python - Django CookieCutter:django.db.utils.OperationalError:fe_sendauth:未提供密码
- javascript - 需要的建议:是否可以在一天中的某个时间更改文件路径以显示不同的内容?
- javascript - Discord.js 导入意图
- android - Android可以访问android中任何应用程序的应用内购买吗
- html - How to remove space between content and left border in p tag?
- ruby-on-rails - 优化/缩短此代码片段的方法
- html - 下标和常规文本 HTML 之间的水平空格
- sql - PL/SQL 获取多于请求的行数