使用C#和Microsoft.TeamFoundationServer.Client向TFS 2017签入代码

问题描述 投票:1回答:1

我们有一套程序(服务插件),它们都依赖于内部NuGet包的复杂层次结构,这些包都是用C#编写的,并且在TFS 2017中使用CI构建来维护包。

我想编写一个实用程序,它可以让我签入一个更改,然后启动一系列自动编辑,签到和构建以自动更新和重建套件。另一种选择是一整天的退房/更新套餐/登记/合并/登记,冲洗和重复(并且,是的,该架构已尽可能优化!)。

自动依赖性确定和编辑部分很容易,但我很难找到任何体面的文档和/或使用C#和Microsoft.TeamFoundationServer.Client(等)获取和签入代码的代码示例 - 所有例子和doco。我发现到目前为止要么是非常过时(2012年),要么只处理阅读内容,工作项目,报告等,而不是更新存储库中的代码。

我有一段来自2010年博客的代码,但是我很犹豫,因为它已经过时并且使用了弃用的API而重新使用它。

任何人都可以请我指点一些体面的doco。或使用C#和2017以编程方式签入的示例。

c# tfs continuous-integration tfs2017 tfs-sdk
1个回答
0
投票

我最近做了这个(使用TFS 2017),我不知道你在博客中看到的是你的方法,无论如何我有这个优秀的作品。

  • 创建工作区: // Connect to TFS TfsTeamProjectCollection _tfs = new TfsTeamProjectCollection(new Uri(tfsUrl)); VersionControlServer _sourceControl = (VersionControlServer)_tfs.GetService(typeof(VersionControlServer)); // Create workspace Workspace _workSpace = _sourceControl.CreateWorkspace("test");
  • 将文件添加到“待更改” //Copy the files to the workspace File.Copy(_filePath, _testWorkSpacePath, true); // Add the files to Pending Changes _workSpace.PendAdd(_testWorkSpacePath); // Get the conflicts var conflitcs =_workSpace.QueryConflicts(new string[] { _workSpaceFilePath }, true); // Resolve the conflitcs foreach (Conflict conflict in conflitcs) { conflict.Resolution = Resolution.AcceptYours; _workSpace.ResolveConflict(conflict); }
  • 报到 var pending = _workSpace.GetPendingChanges(); _workSpace.CheckIn(pending, comment);

trycatch包装每一步当然是好的。

© www.soinside.com 2019 - 2024. All rights reserved.