TFVC:在 vnext 构建期间删除工作区失败
TFVC: Deleting workspace fails during vnext build
我们是 运行 TVFC,拥有“Azure DevOps Server”2019 Update1。
在我们的 vnext 构建结束时,我们想要删除工作区。
我们使用 tf.exe 来做到这一点。但是我们必须指定工作区所有者,因为运行构建的帐户(意味着在构建代理上为构建服务配置的帐户)与用于创建工作区的帐户不同。
工作区所有者是“项目集合生成服务 (DefaultCollection)”。
因此,作为删除工作区的命令,我们使用例如:
tf.exe workspace /delete /noprompt /collection:http://tfs.siplaceworld.net:8080/tfs/DefaultCollection/ ws_1749_167;Project Collection Build Service (DefaultCollection)
这在大多数情况下都有效。我们偶尔会收到一条错误消息:
TF14061: The workspace ws_1749_167;Project Collection Build Service (DefaultCollection) does not exist.
但是在查看构建计算机时工作区确实存在。因此,为了进行调试,我添加了对“tf.exe workspaces”的调用,以在我们尝试删除之前获取所有工作空间的列表。
在错误情况下,您看到工作区所有者不是英语,而是德语:
tf.exe workspaces /collection:http://tfs.siplaceworld.net:8080/tfs/DefaultCollection/
Collection: http://tfs.siplaceworld.net:8080/tfs/DefaultCollection
Workspace Owner Computer Comment
----------- --------------------------------------------------- --------- -------
MCHC16074 ASM AS SW-Dev Build MCHC16074
ws_1678_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1693_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1695_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1700_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1719_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1744_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1747_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1749_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_461_169 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_470_169 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
这是零星的,我们不知道它取决于什么。为什么工作区所有者有时以德语有时以英语列出?
感谢任何帮助!
“项目集合生成服务 (DefaultCollection)”只是创建工作区的帐户的显示名称。不知道为什么这有时是英语有时是德语,但您可以使用“真实”用户名而不是显示名称。
我在“源代码管理资源管理器”的 Security-Window 中找到了该帐户的用户名。我选择“添加 Windows 用户或组”并搜索“构建”,结果是:
显示名称:项目集合生成服务 (DefaultCollection)
用户名:Build\beb2741f-e779-4a6f-a20e-033796fec5b7
所以我更改了清理构建代理的任务,以便在删除工作区时使用用户名:
tf.exe workspace /delete /noprompt /collection:http://tfs.siplaceworld.net:8080/tfs/DefaultCollection/ ws_1749_167;Build\beb2741f-e779-4a6f-a20e-033796fec5b7
效果很好 :)
要删除现有工作区,您必须是所有者或将全局管理工作区权限设置为允许。
您也可以尝试使用 onwer uniq ID 而不是名称。获取所有者唯一 ID:
tf vc workspaces ws_1749_167 /computer:* /format:xml /collection:https://dev.azure.com/xxx/
在此之后它会return 所有者 uniq ID 的信息。然后删除拥有者 uniq ID 的工作区:
tf workspace /delete ws_1749_167;{owner uniq ID}
详情请参考这篇。
我们是 运行 TVFC,拥有“Azure DevOps Server”2019 Update1。
在我们的 vnext 构建结束时,我们想要删除工作区。 我们使用 tf.exe 来做到这一点。但是我们必须指定工作区所有者,因为运行构建的帐户(意味着在构建代理上为构建服务配置的帐户)与用于创建工作区的帐户不同。
工作区所有者是“项目集合生成服务 (DefaultCollection)”。 因此,作为删除工作区的命令,我们使用例如:
tf.exe workspace /delete /noprompt /collection:http://tfs.siplaceworld.net:8080/tfs/DefaultCollection/ ws_1749_167;Project Collection Build Service (DefaultCollection)
这在大多数情况下都有效。我们偶尔会收到一条错误消息:
TF14061: The workspace ws_1749_167;Project Collection Build Service (DefaultCollection) does not exist.
但是在查看构建计算机时工作区确实存在。因此,为了进行调试,我添加了对“tf.exe workspaces”的调用,以在我们尝试删除之前获取所有工作空间的列表。
在错误情况下,您看到工作区所有者不是英语,而是德语:
tf.exe workspaces /collection:http://tfs.siplaceworld.net:8080/tfs/DefaultCollection/
Collection: http://tfs.siplaceworld.net:8080/tfs/DefaultCollection
Workspace Owner Computer Comment
----------- --------------------------------------------------- --------- -------
MCHC16074 ASM AS SW-Dev Build MCHC16074
ws_1678_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1693_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1695_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1700_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1719_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1744_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1747_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_1749_167 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_461_169 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
ws_470_169 Builddienst für Projektsammlung (DefaultCollection) MCHC16074
这是零星的,我们不知道它取决于什么。为什么工作区所有者有时以德语有时以英语列出?
感谢任何帮助!
“项目集合生成服务 (DefaultCollection)”只是创建工作区的帐户的显示名称。不知道为什么这有时是英语有时是德语,但您可以使用“真实”用户名而不是显示名称。
我在“源代码管理资源管理器”的 Security-Window 中找到了该帐户的用户名。我选择“添加 Windows 用户或组”并搜索“构建”,结果是:
显示名称:项目集合生成服务 (DefaultCollection)
用户名:Build\beb2741f-e779-4a6f-a20e-033796fec5b7
所以我更改了清理构建代理的任务,以便在删除工作区时使用用户名:
tf.exe workspace /delete /noprompt /collection:http://tfs.siplaceworld.net:8080/tfs/DefaultCollection/ ws_1749_167;Build\beb2741f-e779-4a6f-a20e-033796fec5b7
效果很好 :)
要删除现有工作区,您必须是所有者或将全局管理工作区权限设置为允许。
您也可以尝试使用 onwer uniq ID 而不是名称。获取所有者唯一 ID:
tf vc workspaces ws_1749_167 /computer:* /format:xml /collection:https://dev.azure.com/xxx/
在此之后它会return 所有者 uniq ID 的信息。然后删除拥有者 uniq ID 的工作区:
tf workspace /delete ws_1749_167;{owner uniq ID}
详情请参考这篇