2012-09-13 87 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