能否将 TFS 产品待办列表项移动到新项目?

Can a TFS Product Backlog Item be moved to a new project?

我在 ProjectA 下的 TFS 中有一个 PBI,其中填充了迭代和面积值。是否可以在不创建新 PBI 的情况下将此 PBI 移动到 ProjectB?

我在 Visual Studio UI 中找不到执行此操作的方法。如果我尝试手动输入 ProjectB 的区域路径,Visual Studio 说找不到路径。

我正在使用 Team Foundation Server 2013 和 Visual Studio Ultimate 2013。

没有。不能在团队项目之间移动工作项。

原因很简单:团队项目的流程模板定义了工作项。团队项目可以有不同的模板。如果您尝试将工作项从使用 Scrum 模板的团队项目移动到使用 CMMI 模板的团队项目,会怎样?

我会说得更深入一点,如果您需要此功能,那么您不应该首先拥有两个团队项目。

http://nakedalm.com/one-team-project/

我使用的术语是:

"If you have artifacts that interact, with artifacts defined as people, code, or work items, then they should be in a single Team Project"

http://nakedalm.com/creating-nested-teams-visual-studio-alm/

使用单个团队项目可以在积压/工作跟踪方面为您提供更多功能。就像上面描述的嵌套团队。

EDIT: This does not work for TFS2017 and forwards.

是的,请参阅 http://www.codeproject.com/Tips/1018002/Yes-You-Can-Move-TFS-WorkItems-Between-Projects 以获取可下载的实用程序、源代码和更详细的说明。

这是一个后门,SQL 管理器方法,Microsoft 不支持,但对我有用。这是 SQL:

UPDATE [Tfs_xxx].[dbo].[WorkItemsAre] SET AreaID=@AreaID,IterationID=@IterationID WHERE ID=@WorkItemID
UPDATE [Tfs_xxx].[dbo].[WorkItemsLatest] SET AreaID=@AreaID,IterationID=@IterationID WHERE ID=@WorkItemID
UPDATE [Tfs_xxx].[dbo].[WorkItemsWere] SET AreaID=@AreaID,IterationID=@IterationID WHERE ID=@WorkItemID

将 Tfs_xxx 替换为 Tfs_<您的收集数据库名称>。

项目本质上是继承Area和Iteration的。将这些从当前项目更改为目标项目会导致工作项 "move" 到目标项目。其他粗糙的边缘是分配池或工作流状态可能不一致,必须在 UI 中手动编辑以使工作项回到目标项目的流程中。

See my related answer。 虽然不适用于本地 TFS,但现在可以 do this with Azure Boards in Azure DevOps.