什么是" tf工作区"做?

时间:2015-08-28 19:59:08

标签: tfs tfs2012

我使用tf.exe执行TFS源代码控制任务 - 映射文件夹,获取文件。当前文件夹映射到工作区,我已经检查过了。映射是以编程方式创建的,然后调用tf。

每当我在新机器上运行代码时,我都会收到以下消息:

  

无法确定工作区。您可以通过运行< tf工作空间/集合来解决这个问题:TeamProjectCollectionUrl'。

如果我执行该命令,它会清除一切,从现在开始一切正常。但是,它到底做了什么,以及如何使用TFS API执行相同操作?

文档说它"更新有关运行Visual Studio Team Foundation Server的服务器上的用户名或计算机名更改的缓存信息。"我不明白 - 缓存在哪里?他们认为计算机名称有什么变化?

调用Workspace.Refresh()或Workspace.Update()并没有帮助。

1 个答案:

答案 0 :(得分:3)

工作区缓存按客户端的每个(主要)版本保留,并且不在版本之间互操作。 (由于Visual Studio / TFS 2015工作区缓存的格式可能与Visual Studio / TFS 2013工作区缓存的格式不同,因此Visual Studio 2013可能无法以向前兼容的方式读取该新版本。)

因此,如果您使用Team Foundation Server 2013 SDK创建新工作区,它将在服务器上创建工作区将该信息放入工作区缓存中,以便后续调用将具有该信息无需从服务器读取。

但是,如果您随后使用Visual Studio 2015中包含的tf.exe,它将在缓存中找到该工作区。它需要连接到服务器以获取工作空间列表 - 然后将其缓存以供将来使用,但同样需要在TFS 2015缓存位置。

一般来说,您需要使用与命令行界面相同版本的SDK。其他替代方法是使用tf.exe命令行界面创建工作区,而根本不使用API​​。或者始终使用API​​,绝不使用tf.exe。只有在混合和匹配客户端时才会出现此问题。