从 TFS2012 升级到 TFS2015 RC 后,TFS 服务器插件失败

TFS Server plugin fails after upgrade from TFS2012 to TFS2015 RC

我们刚刚将其中一台服务器从 TFS2012.2 升级到 TFS2015RC。一切顺利 "smooth",但我们遇到了一个问题:

不久前我们为 TFS 写了一个服务器端插件,它监听 WorkitemChangedEvent。它实现了 ISubscriber 接口。以下代码在更新前运行良好:

void ITfsService.UpdateState(int workItemId, string newState)
{
    var wi = store.GetWorkItem(workItemId);
    wi.State = newState;
    wi.Save();               
}

更新后,针对 TFS2015 dll 重新编译后,出现以下错误:

Failed to process notification: TF237124: Work Item is not ready to save.

注意workitemtypes的none变了,是一样的数据。
我尝试在保存之前通过调用 Validate() 从错误中获取更多信息,这是输出:

Status: InvalidListValue
State: "Resolved, To Be Reviewed"
WIT: Task
Id: 5842
Field: State

但是,状态 "Resolved, To Be Reviewed" 确实存在于可用状态列表中。在 GUI 中,完全可以将项目的状态更改为 "Resolved, To Be Reviewed":

是什么导致 Save() 失败?

终于找到原因了:
显然,Validate() 调用验证了整个 ProcessConfiguration.xml。因为在 TFS2012 中同时存在 AgileProcessConfigurationCommonProcessConfiguration,工作项状态存在潜在问题。

在正确的 ProcessConfiguration 文件中解决了这些问题后,该插件再次工作(并且,TFS 还可以升级 Backlog\IterationPlanning 功能。)