我正在为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
}
问题在于,因为我想在签入变更集之前拦截签入,所以下载文件函数会获取最新签入的版本,而不是已升级的版本。有谁知道如何检查版本?
答案 0 :(得分:1)
您应该尝试CheckinEvent类的工件字段。
CheckinEvent ev = notificationEventArgs as CheckinEvent;
答案 1 :(得分:0)
我会采用不同的方法:使用仅监视该文件的CI构建。 它比服务器插件更健壮,更易于管理。