我有这个脚本(bat文件)
tf workspaces /s:http://project02:8080
tf workspace /s:http://project02:8080 Team.descomp;MyDomain\Myuser
tf workfold /workspace:Team.descomp
tf get $/Team/Main/Projects /recursive /force /noprompt
我收到此错误:无法确定工作区。,当我尝试执行 tf get 时。
控制台输出类似于:
Server: project02
Workspace: DESCOMP
Owner : MyUser
Computer : DESCOMP
Workspace: Team.descomp
Owner : MyUser
Computer : DESCOMP
...
Workspace: Team.descomp (MyUser)
Server : http://project02:8080/
$/Team: C:\Temp\Team2
...
Unable to determine the workspace.
注意,对于 $/Team(团队项目)在两台机器上有 map :MyUser 和 Descomp
Workspace: Team Owner : MyUser Computer : MyUser
Workspace: Team.descomp Owner : MyUser Computer : DESCOMP
有什么建议?
最佳答案
来自论坛 MSDN:霍夫曼先生
http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/82b13bfd-5fd7-45f7-a681-d84c9ea52765
将 tf get 的工作文件夹更改为工作区映射的文件夹。
从映射工作区的文件夹执行命令
(例如,如果您从控制台执行此操作:
cd c:\sources\myteamproject
tf get ...
)
关键:将 tf get 的工作文件夹更改为工作区映射的文件夹。
我使用命令 推送 C:\Temp\Team2 在我的脚本文件中。
更新 : 瑞恩克伦威尔的评论
您可以使用以下内容在脚本中创建和映射工作区。第二个命令有效,因为第一个工作区是在“blah”文件夹中创建的。这 '。'在第二个命令中说将“$/”映射到当前目录(等等)。如果您愿意,您可以将其更改为命名文件夹或子文件夹。
创建新工作区
C:\projects\blah>tf workspace /new blah /noprompt /collection:http://<host>:<port>/tfs/<collection> /login:<username>,<pwd>
映射该工作区中的路径
C:\projects\blah>tf workfold /map $/ . /login:<username>,<pwd>
关于scripting - 无法使用 TF.exe 确定工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4863865/