Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取特定版本的TFS API_C#_Tfs_Tfs Sdk - Fatal编程技术网

C# 获取特定版本的TFS API

C# 获取特定版本的TFS API,c#,tfs,tfs-sdk,C#,Tfs,Tfs Sdk,我为获取所选项目的最新版本编写了一些代码。当我运行它时,它工作正常。但如果我删除文件夹并再次运行,它会显示“所有文件都是最新的” 我通过使用VisualStudioTFS源代码kontrol和获取特定版本解决了这个问题。如何使用TFSAPI在C#项目中实现 我的代码: WorkingFolder workfolder = new WorkingFolder(ServerFolder, LocalFolder); workspace.CreateMapping(workfolder); work

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

我通过使用VisualStudioTFS源代码kontrol和获取特定版本解决了这个问题。如何使用TFSAPI在C#项目中实现

我的代码:

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

workspace.Get(VersionSpec.Latest, GetOptions.Overwrite);
编辑:

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


您可以根据
VersionControlServer
class执行这些步骤

链接:

链接:

注:在上添加参考

Microsoft.TeamFoundation.VersionControl.Client.dll 

Microsoft.TeamFoundation.Client.dll

我还没有尝试过这个,但是你能把GetOptions.Overwrite和GetOptions.GetAll结合起来吗

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

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

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


如果你想在这种情况下得到它们,你必须像丹提到的那样通过强制选项。然而,武力并不是一个很好的消磨时间的选择。它将强制重新下载所有内容,这是您通常不想做的事情。

谢谢,我试过了。我在代码中添加了“GetOptions.GetAll”,当我单击“获取最新版本”按钮时,程序正在下载我工作区中的所有项目。我想得到唯一选定的项目在TreeviewHanks Taylor,你的解释是非常翔实的。我使用GetStatus类解决了这个问题。调用workspace.Get()方法后,我检查返回的值,如果该值为“NoActionRequired”,我将获取所有值。再次感谢。
workspace.Get(VersionSpec.Latest, GetOptions.Overwrite | GetOptions.GetAll)