通过使用 TFSDeleteProject,可以将团队项目从 Team Foundation Server 中删除,前提是不再需要项目。 此外,如果不成功的团队项目创建后仍未删除的组件,可以使用 TFSDeleteProject 删除它们。
| .gif) 重要事项 | 
|---|
| TFSDeleteProject 会永久地破坏团队项目,之后无法恢复它。 您应该在使用 TFSDeleteProject 之前备份所有重要项目数据。 | 
可以在运行 团队资源管理器 的任何客户端计算机上的“驱动器:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE”中找到 TFSDeleteProject 命令行工具。
提示
即使您是以管理权限登录的,也必须使用提升的权限打开命令提示符窗口,才能在运行 Windows Server 2008 的服务器上执行此功能。 若要使用提升的权限打开命令提示符窗口,请单击“开始”,右击“命令提示符”,然后单击“以管理员身份运行”。 有关更多信息,请参见以下 Microsoft 网站:User Access Control(用户访问控制)。
所需权限
若要使用 TFSDeleteProject 命令,您必须是**“Team Foundation Administrators (Team Foundation 管理员)”安全组或“Project Administrators (项目管理员)”**安全组的成员。 有关更多信息,请参见Team Foundation Server 权限和Team Foundation Server 默认组、权限和角色。
TFSDeleteproject [/q] [/force] [/excludewss] /collection:URL TeamProjectName
参数
| 选项 | 说明 | 
|---|---|
| /q | 可选。 使用安静模式。 不提示用户进行确认。 | 
| /force | 可选。 指定即使某些组件不能被删除,应继续删除过程。 | 
| /excludewss | 可选。 指定不删除与团队项目关联的 SharePoint 站点。 指定此选项将维护现有的站点,以便其他团队项目可以继续使用它。 | 
| /collection:URL | 必选。 指定团队项目集合的 URI。 必须对 URI 使用以下格式:http://ServerName:Port/VirtualDirectoryName/CollectionName 如果不指定虚拟目录,则必须使用以下格式的 URI: http://ServerName:Port/CollectionName。 | 
| TeamProjectName | 必选。 项目的名称。 如果名称包含空格,则将其置于引号中。 | 
备注
当创建团队项目时,Team Foundation Server 在服务器上创建数据对象(该服务器托管 Team Foundation Server),并可能在托管 SharePoint 产品 的服务器上创建数据(该服务器托管 SQL Server 报告服务)。 删除团队项目时,该报表将自动从 SQL Server 报告服务删除。
当您删除团队项目时,您可以选择是否删除为了支持 SharePoint 网站而创建的对象。 但是,错误可能阻止 Team Foundation Server 创建或删除所有对象。 若要排除这些问题,以下各节提供了背景信息、其他资源的链接,以及助您确定问题原因的具体步骤,由此解决问题,并在必要时删除在运行 TFSDeleteProject 后保留的数据对象。
- TFSDeleteProject 进程 
- 可能保持不删除的数据 
- 验证已删除团队项目组件 
- 删除部分项目删除后的剩余的组件 
- 延长超时时间 
TFSDeleteProject 进程
当您使用 TFSDeleteProject 命令行工具时,首先删除项目数据然后删除项目网站。
阶段 1:TFSDeleteProject 删除项目数据
在第一阶段中 TFSDeleteProject 自动执行以下步骤以删除团队项目数据:
- TFSDeleteProject 创建候选的所有要删除组件的详细清单。 这包括与 测试管理器、Team Foundation Build 和 Team Foundation 版本控制 集成的组件。 
- TFSDeleteProject 删除在 团队资源管理器 中显示项目节点的组件。 
- TFSDeleteProject 标记为要删除的版本控制信息,但不会立即删除此信息。 这些信息包括在指定的项目中的所有版本控制分支(但不包括项目之外的任何其他分支)。 - 如果父分支和子分支都在项目中,则 TFSDeleteProject 标记都表示删除。 
- 如果父分支和子分支在不同项目中,则 TFSDeleteProject 只标记指定的分支。 
- 如果另一个项目是指定项目的分支,则 TFSDeleteProject 只标记指定的项目。 删除指定的项目时,分支项目将孤立。 
 
- TFSDeleteProject 立即删除生成数据,包括信息和核心数据、生成定义、生成代理和与团队项目相关联的测试结果。 该工具不会删除生成放置位置。 在创建使用相同生成放置位置的团队项目之前,不需要删除旧团队项目。 - 如果指定的项目包含大量生成数据,则删除操作在超时期限内可能无法完成。 若要解决此问题,请参阅增加超时周期,然后再次运行 TFSDeleteProject。 
- TFSDeleteProject 立即删除工作项以及属于指定的项目的工作项字段,并且它将删除所有非共享元数据。 - 如果指定的项目包含大量工作项数据,则删除操作在超时期限内可能无法完成。 若要解决此问题,请参阅增加超时周期,然后再次运行 TFSDeleteProject。 
阶段 2:TFSDeleteProject 删除项目网站
在第二个阶段 TFSDeleteProject 删除以下数据:
| .gif) 重要事项 | 
|---|
| 这些步骤需要花费很长时间才能完成,并在此期间,它们可以降低服务器性能。 | 
- TFSDeleteProject 使用报告服务 API 在托管报告服务的服务器上删除报告。 
- TFSDeleteProject 从托管 SharePoint 产品 的服务器删除项目门户网站。 如果项目拥有该站点,并在命令行中未排除删除网站时,才会出现此步骤。 (请考虑多个项目可能指向单个站点,但它们当中只有一个可以是所有者,其中,默认情况下报表/面板使用此项目)。 - 提示 - 删除团队项目前,可以通过验证门户网站设置确认报告服务和 SharePoint 产品 使用了正确的项目 url。 有关更多信息,请参见添加团队项目门户网站。 
如果 TFSDeleteProject 成功删除以上所有数据元素,则会返回消息**“完成”**。 要验证此结果,请参阅验证是否已成功删除团队项目 。
如果没有移除一个或多个组件,则可以通过使用 /force 选项返回 TFSProjectDelete,以继续删除过程,即使不能删除所有数据元素。 使用此选项 TFSDeleteProject,跳过不能删除的组件,返回错误信息,删除下个组件,并保持项目元素数和安全设置不变。
可能保持不删除的数据
在成功完成 TFSDeleteProject 后,可保持部署以下数据。
- 在多维数据集中的团队项目数据。 团队项目数据将保留在多维数据集中,直到重建多维数据集,此时仓库控制器服务会删除所有历史版本数据,这些数据已从 Team Foundation 数据库删除。 
- 生成拖放文件和文件夹。 生成二进制文件、生成日志文件,包含测试结果的日志文件在生成过程中发布。 不会删除这些文件的位置。 如果要删除这些文件,必须手动删除。 
- 工作项跟踪共享的元数据。 TFSDeleteProject 不会删除团队项目之间共享的工作项跟踪的任何元数据。 
- 版本控制搁置集包含共享代码。 如果在多个团队项目搁置集中有代码,则版本控制搁置集不会被删除。 
验证项目删除
您可以验证项目删除是否成功,方法是确认团队项目节点不再出现在 团队资源管理器 中,并且其项目门户网站的网站和报表文件夹不再存在。
验证是否已成功删除团队项目
- 打开 团队资源管理器 并验证该项目不显示为项目节点。 
- 打开 Internet 资源管理器并键入项目门户网站的 URL。 验证该网站是否不再存在。 
- 使用以下 URL 格式之一在 Internet Explorer 地址框中键入报告服务网站的 URL: - http://ReportingServices/Reports 
- **http://ReportingServices/Reports_**TFS 实例 
 
- 在报表管理器中单击**“显示详细信息”**。 
- 验证已删除团队项目的文件夹是否不再出现。 单击根文件夹 TfsReports,然后单击按团队项目集合命名的文件夹。 应不再有一个文件夹具有已删除项目的名称。 
- 如果保留了报表或网站,请参见下个过程。 
删除部分项目删除后的剩余的组件
如果删除团队项目后项目门户网站和报表文件夹仍然保留,则手动移除站点和文件夹。
若要手动删除报告和已删除的团队项目的项目门户网站
- 登录到承载已删除的团队项目的 Reporting Services 服务器。 
- 打开 Internet Explorer ,使用以下 URL 格式之一在地址框中键入报告服务 Web 站点的 URL: - https://localhost/Reports 
- **https://localhost/Reports_**TFS 实例 
 
- 在报表管理器中单击**“显示详细信息”**。 
- 单击根文件夹 TfsReports,然后单击按团队项目集合命名的文件夹。 
- 选择删除的团队项目的复选框。 
- 单击**“删除”**。 
- 单击**“确定”**以确认删除团队项目报告文件夹。 
- 若要删除已删除的团队项目的项目门户网站的网站,请参见 Microsoft 网站上的以下网页:How to: Create, Edit, and Delete Windows SharePoint Services Sites(如何:创建、编辑,和删除 Windows SharePoint Services 站点)。 
延长超时时间
默认情况下,每个 Web 服务调用发出 TFSDeleteProject 命令以删除组件的程序必须在 10 分钟内完成。 如果有六个调用,则过程可能长达一个小时。 如果想要删除与大量的数据相关联的团队项目,可以暂时增加此超时时间。
提示
当您增加超时时间时,更改将影响所有的 Web 服务调用。 一般情况下,用户总是希望将超时时间保留在 10 分钟内,以防止从降低的服务器性能传递而来的网络服务请求并防止用户长时间占用用户界面。 因此,成功地删除项目后,您应更将超时期间改回为 10 分钟。
所需权限
若要完成这些过程,您必须是应用层服务器上的 Windows 管理员。
| .gif) 重要事项 | 
|---|
| 计算机注册表修改不当会导致计算机变得不稳定。 如果您不熟悉注册表,则不应当添加或移除任何项,也不要以任何方式修改它。 | 
要延长 TFSDeleteProject 命令的超时时间
- 登录到应用层服务器。 
- 依次单击**“开始”和“运行”,键入 regedit,然后单击“确定”**。 
- 在浏览器窗格中,展开 HKEY_ LOCAL_MACHINE: - 如果服务器运行的是 32 位操作系统,则展开:“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\TeamFoundation\RequestSettings”。 
- 如果服务器运行的是 64 位操作系统,则展开:“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\10.0\TeamFoundation\RequestSettings”。 
 
- 如果**“TeamFoundation\RequestSettings”**键不存在,则按以下步骤创建该键: - 右击**“TeamFoundation”,指向“新建”,然后单击“键”**。 
- 命名密钥**“RequestSettings”**。 
- 右击**“RequestSettings”,指向“新建”,然后单击“DWORD 值”**。 
- 为新值**“DefaultTimeout”**命名。 
 
- 右击**“DefaultTimeout”并选择“修改”**。 
- 在**“值数据”键入超时时间(毫秒),然后单击“十进制”**。 - 例如,要将超时期限提高到 30 分钟,则键入 1800000。 要将超时期限更改回到 10 分钟,则键入 600000。 
- 单击**“确定”**。 
- 在**“文件”菜单上单击“退出”**。 
示例
下面的命令删除与团队项目 StoreFront 相关的所有组件,其位于 Team Foundation Server AdventureWorks1 服务器上,位于项目集合 Collection1 并来自 团队资源管理器。
TFSDeleteProject /force /collection:http://AdventureWorks1:8080/Collection1 StoreFront
请参见
任务
在 Team Foundation Server 中连接和访问团队项目