【问题标题】:Check-in code to TFS 2017 using C# and Microsoft.TeamFoundationServer.Client使用 C# 和 Microsoft.TeamFoundationServer.Client 将代码签入到 TFS 2017
【发布时间】:2019-01-26 03:39:42
【问题描述】:

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

我想编写一个实用程序,使我能够签入更改,然后启动一系列自动编辑、签入和构建以自动更新和重建套件。另一种选择是一整天的签出/更新包/签入/合并/签入,冲洗和重复(是的,架构已尽可能优化!)。

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

我有一段来自 2010 年博客的代码,它可以运行,但我不愿重新调整它的用途,因为它已经过时并且使用了已弃用的 API。

谁能指点我一些像样的doco。或使用 C# 和 2017 以编程方式签入的示例。

【问题讨论】:

    标签: c# tfs continuous-integration tfs-sdk


    【解决方案1】:

    我最近做了这个(用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 包裹每个步骤当然是好的。

    【讨论】:

    • 我在这里和那里看到过类似的东西,但不是全部都在一个地方,我会试一试。我目前使用的旧代码早于此,所以这很好。非常感谢,我会告诉你我的进展情况。
    • @Shayki Abramczyk 你使用了哪些 nugets?
    猜你喜欢
    • 2013-12-27
    • 1970-01-01
    • 2018-08-03
    • 2018-05-04
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2016-05-09
    相关资源
    最近更新 更多