10

TFS APIを使用してc#でファイルを移動する方法について、私はかなりの時間グーグルで調べてきました。アイデアは、開発者がデータベース アップグレード スクリプトをドロップし、ビルド プロセスがそのフォルダーに到達するフォルダーを用意して、ビルド スクリプトを作成し、フォルダー上のすべてのファイルを、作成したばかりのデータベース ビルド バージョンを含む新しいフォルダーに移動することです。

TFSでプログラムでファイルを移動することに関する参照を真剣に見つけることができません...(cmdコマンドラインは別として)

C#を介してTFSソース管理ファイルの操作を学習するための優れたガイド/ msdnの開始点を知っている人はいますか?

4

2 に答える 2

11

とてもシンプルです:)。

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

次に、もちろんチェックインする必要があります。これを行うには、「workspace.GetPendingChanges()」および「workspace.CheckIn()」メソッドを使用します。

于 2008-09-29T15:04:27.830 に答える
7

これは、ほとんどの場合に役立つ簡単で汚いコード サンプルです。

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; 
        }
    }
}
于 2008-09-29T15:12:10.463 に答える