2012-09-13 89 views
3

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

我使用Visual Studio TFS源代码kontrol和获取特定版本解决了此问题。我如何使用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" 

回答

1

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

如果你想在这种情况下得到他们,你将不得不通过像丹提到的强制选项。尽管如此,力量并不是一个很好的选择。它将强制所有内容被重新载入,这是你通常不想做的事情。

+1

上得到选定的项目。感谢泰勒,你的解释非常丰富。我使用GetStatus类解决了问题。在调用workspace.Get()方法之后,我检查返回的值,如果值是“NoActionNeeded”,我就得到全部。 再次感谢。 – mozkarakoc

1

我一直没要试试这个添加引用,但你可以结合GetOptions.Overwrite与GetOptions.GetAll?

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

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

+0

谢谢,我试过了。我在代码中添加“GetOptions.GetAll”,当我点击获取最新按钮时,程序正在我的工作区中下载所有项目。我想只在treeView – mozkarakoc