我正在编写一个实用程序来读取遗留错误跟踪系统中的所有缺陷,并将它们导入 TFS (2008/2010)。我正在使用 TFS API 创建新的 WorkItems,设置它们的字段,然后保存它们。但是,我无法修改“创建者”和“创建日期”字段,因为它们是由系统设置的。(还有其他字段我希望能够为其强制值,例如将提交者设置为不是有效 TFS 用户的人)
// these fail with "The value for the field 'Created By' cannot be changed."
defectWorkItem.Fields["Created By"].Value = defect.Submitter;
defectWorkItem.Fields["Created Date"].Value = defect.SubmitDate;
显然,如果我不能设置这些字段,我最终会得到所有遗留错误,看起来它们是由同一个人在同一日期创建的。
有没有办法可以使用 API,但强制更改通常受保护的字段?我已经研究过直接访问 TFS 数据库表,但架构看起来很复杂,我认为尝试自己修改那里的数据会很冒险。