簡體   English   中英

如何使用c#API移動TFS文件?

[英]How do I move a TFS file with c# API?

我一直在谷歌搜索如何使用TFS API使用c#移動文件。 我們的想法是擁有一個文件夾,開發人員可以在其中刪除數據庫升級腳本,並且構建過程到文件夾創建構建腳本,並將文件夾上的所有文件移動到我們剛創建的數據庫構建版本的新文件夾。

我無法認真地找到關於在TFS中以編程方式移動文件的任何參考...(除了cmd命令行)

有沒有人知道通過c#學習TFS源控制文件操作的良好指南/ msdn起點?

它非常簡單:)。

Microsoft.TeamFoundation.VersionControl.Client.Workspace workspace = GetMyTfsWorkspace();
workspace.PendRename( oldPath, newPath );

然后你需要CheckIn它當然。 使用“workspace.GetPendingChanges()”和“workspace.CheckIn()”方法來執行此操作。

這是一個快速而又臟的代碼示例,可以幫助您完成大部分工作。

using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.VersionControl.Client; 


public void MoveFile( string tfsServer, string oldPath, string newPath )
{
    TeamFoundationServer server = TeamFoundationServerFactory.GetServer( tfsServer, new UICredentialsProvider() ); 
    server.EnsureAuthenticated(); 
    VersionControlServer vcserver = server.GetService( typeof( VersionControlServer ); 
    string currentUserName = server.AuthenticatedUserName;
    string currentComputerName = Environment.MachineName;
    Workspace[] wss = vcserver.QueryWorkspaces(null, currentUserName, currentComputerName);
    foreach (Workspace ws in wss)
    {

        foreach ( WorkingFolder wf in wfs )
        {
            bool bFound = false; 
            if ( wf.LocalItem != null )
            {
                if ( oldPath.StartsWith( wf.LocalItem ) )
                {
                   bFound = true; 
                   ws.PendRename( oldPath, newPath ); 
                   break; 
                }
             }
            if ( bFound )
               break; 
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM