【问题标题】:How to check when TFS Workspace.Get method is complete?如何检查 TFS Workspace.Get 方法何时完成?
【发布时间】:2011-06-17 07:03:24
【问题描述】:

我正在使用 Microsoft.TeamFoundation.Client 命名空间中的 Workspace 类从 Team Foundation Server 获取特定分支的最新代码。

workspace.Get(new string[] { SelectedRelease.ServerPath }, VersionSpec.Latest,
RecursionType.Full, GetOptions.GetAll);

获得最新代码后,我以编程方式构建相关解决方案。代码可以在帖子here中找到。

我的问题是'我怎样才能知道 Workspace.Get 方法何时完成?在它完成下载之前我无法构建它。想过监控解决方案文件夹,但不知道文件是按什么顺序建的。

【问题讨论】:

  • 这个问题可能对你有用:stackoverflow.com/questions/5184252/…
  • 谢谢@Jamie Dixon,这正是我所追求的。您能否将您的评论粘贴到答案中,以便我将此问题标记为已回答?

标签: c# tfs build workspace getlatest


【解决方案1】:

它不是异步的。一旦它返回,你的 get 就完成了。

如果您想在另一个线程中侦听完成(并使用 TFS 的事件系统而不是滚动您自己的),您可以将 GettingEventHandler 连接到您的 VersionControlClient。

【讨论】:

  • 它是异步的。我的程序在获取文件的同时继续运行……我为什么还要发布这个问题?
  • 您确定没有看到其他行为吗?例如,如果您指定了无效的服务器路径,Workspace.Get 将立即返回(无需执行任何操作。)生成的 GetStatus 是什么样的?
  • 经过进一步检查,我相信您可能是正确的,并衷心为我之前的评论道歉。事实上,这确实解释了该程序的一些奇怪行为,所以谢谢。 +1
  • 完全不用担心!如果我在第一篇文章中提到了为什么它可能无法执行任何工作,那会更有帮助,但我没有考虑到服务器路径上的缺失(或缺少权限)。
【解决方案2】:

【讨论】:

  • 谢谢@Jamie Dixon,这正是我所追求的。 :)
猜你喜欢
  • 2016-11-01
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多