如何使用c#neneneba API移动TFS文件

本文关键字:TFS 文件 移动 API 何使用 c#neneneba | 更新日期: 2023-09-27 17:48:51

我已经在谷歌上搜索了很长时间,了解如何使用TFS API移动带有c#的文件。这个想法是让开发人员在一个文件夹中放置数据库升级脚本,然后构建过程进入该文件夹。创建一个构建脚本,并将文件夹中的所有文件移动到我们刚刚创建的数据库构建版本的新文件夹中。

我真的找不到任何关于在TFS中用程序移动文件的参考。。。(cmd命令行旁边)

有人知道通过c#学习TFS源代码管理文件操作的好指南/msdn起点吗?

如何使用c#neneneba API移动TFS文件

非常简单:)。

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

那你当然需要办理入住手续。使用"workspace.GetPendingChanges()"answers"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; 
        }
    }
}