Как переместить файл TFS с помощью API c #? - PullRequest
10 голосов
/ 29 сентября 2008

Я довольно долго гуглял о том, как переместить файл с помощью c # с помощью TFS API. Идея состоит в том, чтобы иметь папку, в которую разработчики удаляют сценарии обновления базы данных, а процесс сборки получает в папку, создает сценарий сборки и перемещает все файлы в папке в новую папку с версией сборки базы данных, которую мы только что создали.

Я не могу всерьез найти какие-либо ссылки о программном перемещении файлов в TFS ... (кроме командной строки cmd)

Кто-нибудь знает о хорошей отправной точке guide / msdn для изучения манипуляций с файлами управления исходным кодом TFS через c #?

Ответы [ 2 ]

11 голосов
/ 29 сентября 2008

Это довольно просто:).

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

Тогда вам, конечно, нужна регистрация. Используйте для этого методы «workspace.GetPendingChanges ()» и «workspace.CheckIn ()».

7 голосов
/ 29 сентября 2008

Вот быстрый и грязный пример кода, который поможет вам в этом.

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; 
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...