当TFPT"无法确定工作空间"并刷新缓存不起作用时,是否有解决方法?

dav*_*ngo 22 workspace tfs tfs2010

即使尝试按照互联网上的常规建议刷新缓存的工作区设置,我也无法让TFPT.exe完全正常工作.请参阅下面的日志代表我所尝试和看到的内容.任何人都可以解释为什么"tf get"能够确定工作空间,但"tfpt annotate"会失败吗?

C:\tfsproj> set tfptcmd="C:\Program Files (x86)\Microsoft Team Foundation Server 2010 Power Tools\TFPT.exe"
C:\tfsproj> set tfcmd="C:\Program Files (x86)\Microsoft Visual Studio   10.0\Common7\IDE\TF.exe"
C:\tfsproj> %tfcmd% workspaces /s:http://tfs:8080/tfs/Apps
Collection: tfs\Apps
Workspace Owner          Computer Comment
--------- -------------- -------- ---------------------------------------------
DAVID     David_Zarlengo DAVID

C:\tfsproj> %tfcmd% get /preview
C:\tfsproj\src\:
Replacing Readme.txt

C:\tfsproj> %tfptcmd% annotate src\Readme.txt
Unable to determine the workspace
Run Code Online (Sandbox Code Playgroud)

当我在Visual Studio 2010中编辑工作区时,"工作文件夹"网格包含3行,其中一行是"活动,$/Foo,C:\ tfsproj",因此,我假设文件夹已正确映射.

Team Foundation Server上交叉发布- 电动工具和附加组件

Nik*_* G. 32

来自MSDN论坛上类似讨论的这个建议帮助我:

您需要确保映射文件夹运行命令,您可以运行tf workfold以查看当前文件夹是否已映射(即在您的情况下运行命令C:\Temp)


Sco*_*ham 15

我有同样的错误,问题是,当我从命令行运行tfpt时,它正在解析为2008版本的电动工具,而不是2010版本.

运行tfpt没有参数,并在它转出的帮助中,它告诉你它是哪个版本.

  • 谢谢!这解决了我的问题.只需在cmd行中指定您想要2010版本:"C:\ Program Files(x86)\ Microsoft Team Foundation Server 2010 Power Tools\tfpt.exe".请务必验证您确实安装的程序目录. (2认同)

Joh*_*Fun 13

对于vs2017中的那些:尝试启动vs2015(而不是2017),确保连接到vs2015中的TFS服务器,然后tfpt正常工作.

但请注意:听起来tf powertools命令正在被集成到新的tfs工具中,所以tfpt在2017年并不是真的.有关更多信息和有用的链接,请参阅Daniel Mann的答案:Visual Studio 2017上的tfpt.exe


dav*_*ngo 5

重新看一看后,发现“ C:\ tfsproj”是指向“ C:\ some \ nested \ path”的目录符号链接。从嵌套的路径运行TFPT命令按预期的方式工作。

有趣的是,TFS工作区已映射到嵌套路径,因此令人惊讶的是TF命令(例如tf get / preview)能够从别名路径正常工作。

我怀疑TFPT在确定工作区时未正确遵循NTFS目录符号链接。