TFS ISubscriber插件,如何访问签入的文件?

时间:2014-05-30 19:31:51

标签: c# visual-studio plugins tfs

我正在为TFS编写一个插件,它根据存储在源代码中的xml文件执行自动分支和合并。我可以在服务器上执行此操作,但我无法获取最新的xml文件(如果已更改)。

public EventNotificationStatus ProcessEvent(TeamFoundationRequestContext requestContext, NotificationType notificationType, object notificationEventArgs, out int statusCode, out string statusMessage, out ExceptionPropertyCollection properties)
{
  TeamFoundationVersionControlService versionControl = requestContext.GetService<TeamFoundationVersionControlService>();

  string localTempFile = Path.GetTempFileName();          
  versionControl.DownloadFile(requestContext, serverItemPath, 0, VersionSpec.Parse("C" + versionControl.GetLatestChangeset(requestContext).ToString(), null).First(), localTempFile);

  return EventNotificationStatus.ActionApproved
}

问题在于,因为我想在签入变更集之前拦截签入,所以下载文件函数会获取最新签入的版本,而不是已升级的版本。有谁知道如何检查版本?

2 个答案:

答案 0 :(得分:1)

您应该尝试CheckinEvent类的工件字段。

CheckinEvent ev = notificationEventArgs as CheckinEvent;

答案 1 :(得分:0)

我会采用不同的方法:使用仅监视该文件的CI构建。 它比服务器插件更健壮,更易于管理。