2013-12-10 54 views
2

我在寫C#代碼簽入代碼到TFS服務器:入住代碼到TFS服務器通過使用TFS API

Workspace WS = VersionControl.GetWorkspace(TeamProject); 
WS.Map(TFSMapServerPath,LocalWorkingPath); 

int NumberOfChange = WS.PendAdd(string.Format(@"{0}\Main\DotNet\",LocalWorkingPath),true); 

PendingChange[] pendingChanges = WS.GetPendingChanges();   
WS.CheckIn(pendingChanges,"Auto Check-in"); 

但我得到的錯誤是

「不文件簽入「,LocalWorkingPath下的所有文件/文件夾都是」待定更改「。

以上代碼是否正確?

+0

獲得最新和檢查,如果你有看到你的代碼,有時代碼簽入,但TFS寫,它不是。 – Hadash

+0

我用我的帳戶來檢查TFS服務器,文件/文件夾在那裏,但狀態是「掛起更改」,我需要通過右鍵單擊手動簽入並單擊簽入。 –

+0

如果團隊項目已經在那裏,文件或文件夾成功簽入,否則它是「等待更改」。在TFS服務器中不存在Team Project的情況下,我們是否有辦法自動簽入? –

回答

1

我將WS.GetPendingChanges()命令更改爲WS.GetPendingChanges(tfsServerFolderPath,RecursionType.Full),它在我身邊工作。

下面是詳細:

 //Get the current workspace 
     WS = versionControl.GetWorkspace(workspaceName, versionControl.AuthorizedUser);  

     //Mapping TFS Server and code generated 
     WS.Map(tfsServerFolderPath,localWorkingPath); 

     //Add all files just created to pending change 
     int NumberOfChange = WS.PendAdd(localWorkingPath,true); 
     //Get the list of pending changes 
     PendingChange[] pendings = WS.GetPendingChanges(tfsServerFolderPath,RecursionType.Full); 

     //Auto check in code to Server 
     WS.CheckIn(pendings,"CodeSmith Generator - Auto check-in code."); 
+0

你爲了做到這一點而使用了什麼參考?在此先感謝 –

+0

此方法不適用於文件夾,並且當我試圖簽入文件夾內沒有文件時,我收到一個異常:「沒有文件檢入」。 –