TFS订阅者插件,我如何访问文件签入

本文关键字:访问 文件 何访问 插件 TFS | 更新日期: 2023-09-27 18:06:04

我正在为TFS编写一个插件,该插件基于存储在source中的xml文件执行自动分支和合并。我能够在服务器上执行此操作,但如果更改了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
}

问题是,因为我想在它成为变更集之前拦截签入,所以下载文件函数为我提供了最新签入的版本,而不是提升的版本。有谁知道如何获取正在检入的版本吗?

TFS订阅者插件,我如何访问文件签入

您应该尝试CheckinEvent类的artifacts字段。

CheckinEvent ev = notificationEventArgs as CheckinEvent;

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