获取特定版本TFS API

时间:2012-09-13 14:32:07

标签: c# tfs tfs2010 tfs-sdk

我写了一些代码来获取所选项目的最新版本。当我运行它,它的工作原理。但是,如果我删除该文件夹并再次运行它,则会显示“所有文件都是最新的”

我使用Visual Studio TFS源代码kontrol和Get Specific版本解决了这个问题。如何使用TFS API在C#项目中实现?

我的代码:

WorkingFolder workfolder = new WorkingFolder(ServerFolder, LocalFolder);
workspace.CreateMapping(workfolder);

workspace.Get(VersionSpec.Latest, GetOptions.Overwrite);

修改

我添加该代码并检查返回值“getStatus”

GetStatus getStatus = workspace.Get(VersionSpec.Latest,  GetOptions.Overwrite);
if (getStatus.NoActionNeeded)
// create new workspace and use same codes in "My code"

3 个答案:

答案 0 :(得分:1)

我还没有尝试过,但是你可以将GetOptions.Overwrite与GetOptions.GetAll结合使用吗?

workspace.Get(VersionSpec.Latest, GetOptions.Overwrite | GetOptions.GetAll)

在命令行中,我使用tf get命令的/ force选项。我认为GetOptions.GetAll标志可能等同于/ force选项。

答案 1 :(得分:1)

如果您在2012年使用本地工作区,则GetLatest不下载您已删除的文件的问题将不会成为问题。但是,在“服务器”工作空间中,TFS只知道您告知TFS的本地磁盘更改。在这种情况下,由于TFS服务器不知道您删除的文件,因此不会知道它们丢失了,也不会重新下载它们。

如果你想在这种情况下得到它们,你必须像Dan提到的那样传递强​​制选项。虽然力量不是一直很好的选择。它会强制重新下载所有内容,这是你通常不想做的事情。

答案 2 :(得分:0)

您可以按照这些步骤进行操作 - 基于VersionControlServer

链接:http://msdn.microsoft.com/fr-fr/library/microsoft.teamfoundation.versioncontrol.client.versioncontrolserver.aspx

链接:http://msdn.microsoft.com/fr-fr/library/bb138927.aspx

注意:在

上添加参考
Microsoft.TeamFoundation.VersionControl.Client.dll 

Microsoft.TeamFoundation.Client.dll