无法使用TF.exe确定工作区

时间:2011-02-01 14:38:27

标签: scripting tfs team-build workspace

我有这个脚本(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。

控制台输出类似于:

  

服务器:project02

     

工作区:DESCOMP

     

所有者:MyUser

     

计算机:DESCOMP

     

工作区:Team.descomp

     

所有者:MyUser

     

计算机:DESCOMP

     

...

     

工作区:Team.descomp(MyUser)

     

服务器:   http://project02:8080/

     

$ / Team:C:\ Temp \ Team2

     

...

     

无法确定工作区。

注意,$ / Team(团队项目)在两台机器上有地图:MyUser和Descomp

  

工作区:团队所有者:MyUser   电脑:MyUser

     

工作区:Team.descomp所有者:   我的用户计算机:DESCOMP

有什么建议吗?

3 个答案:

答案 0 :(得分:38)

来自论坛MSDN:霍夫曼先生

http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/82b13bfd-5fd7-45f7-a681-d84c9ea52765

将tf的工作文件夹更改为工作区映射的文件夹。

从映射工作空间的文件夹中执行命令

(例如,如果您从控制台执行此操作:

cd c:\sources\myteamproject

tf get ...


键:将tf的工作文件夹更改为工作区映射的文件夹。

我在我的脚本文件中使用命令 pushd C:\ Temp \ Team2

更新:Ryan Cromwell的评论

您可以使用以下内容在脚本中创建和映射工作区。第二个命令有效,因为第一个工作区是在'blah'文件夹中创建的。 '。'在第二个命令中说地图'$ /'到当前目录(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>

答案 1 :(得分:7)

这扩展了@Kiquenet的答案。在评论中不容易做到:(

您可以使用以下内容在脚本中创建和映射工作区。第二个命令有效,因为第一个工作区是在'blah'文件夹中创建的。 '。'在第二个命令中说地图'$ /'到当前目录(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>

答案 2 :(得分:2)

我在团队城市执行ps1文件时遇到以下问题:

tf resolve FND.sql /auto:KeepYours

tf checkout FND.sql /noprompt

tf checkin FND.sql /noprompt

当我在PS窗口中执行它时,它工作正常,但在Team City执行时,我得到了每个tf调用的以下响应:

Unable to determine the workspace. ...

尝试获取有关正在发生的事情的更多信息,我在第一次调用tf之前插入了以下语句:

tf workfold

当我下次运行Team City时,tf workfold显示以前未识别的映射,并且现有的tf命令开始工作。

当我拿出tf workflold命令时,它仍然有效。

我不明白,但也许这对其他有此问题的人有用。

我之前曾尝试过来自此网站和其他网站的一些建议,但没有成功。

希望这有助于某人。