Как изменить папку удаления для исторических сборок в TFS 2010 - PullRequest
3 голосов
/ 09 марта 2012

Наш сервер, который использовался для размещения выпадающих сборок, удаляется.Я знаю, как изменить текущее определение сборки для использования нового сервера, но как изменить хронологические записи для сборок, которые уже были завершены?Я хочу иметь возможность открывать прошлые сборки и нажимать «Открыть папку для удаления» и переходить на новый сервер.Мы будем вручную копировать старые сборки на новый сервер.

Ответы [ 2 ]

4 голосов
/ 12 марта 2012

Кажется, что работает следующий образец:

using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;

namespace ChangeDropLocation
{
    class Program
    {
        static void Main()
        {
            TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://MyServer:8080/tfs/Collection"));
            var buildService = (IBuildServer)teamProjectCollection.GetService(typeof(IBuildServer));

            IBuildDetail buildDetail = buildService.GetBuild(new Uri("vstfs:///Build/Build/1506"));
            buildDetail.DropLocation ="\\somewhere";
            var buildDetails = new List<IBuildDetail>();
            buildDetails.Add(buildDetail);
            buildService.SaveBuilds(buildDetails.ToArray());
        }
    }
}

Одна вещь, которую вы должны принять во внимание, это то, что вам, вероятно, не хватит привилегий для обновления информации о сборке. В моей первой попытке, хотя я являюсь администратором проекта, я получил следующее:

TF215106: доступ запрещен. ДОМЕН \ имя пользователя нуждается в обновлении сборки информация разрешения для определения сборки myBuildDefinition в команде проект MyTeamProject для выполнения действия. Для дополнительной информации, обратитесь к администратору Team Foundation Server.

Чтобы преодолеть это, установите право, щелкнув правой кнопкой мыши в TeamExplorer «Builds» и затем выберите «Security ...».

2 голосов
/ 09 марта 2012

Я не знаю ни одного инструмента для этого.Может быть, есть команда TFS powershell, но, если не считать этого, я думаю, вы могли бы - ПОСЛЕ ТОГО, ЧТОБЫ ПРЕДОСТАВИТЬ МЕРЫ ПРЕДОСТОРОЖНОСТИ ДЛЯ КУРСА - напрямую обновить базу данных SQL.

Отображение в местоположение отбрасывания сохраняется в коллекции базы данных SQLtbl_Build.

выберите [DropLocation], [DropLocationRoot], [LogLocation] из [tbl_Build]

Я не уверен, есть ли какие-либо последствия для склада.Возможно, стоит сначала проверить это.

Я полагаю, что Microsoft обычно рекомендует не манипулировать SQL напрямую для подобных вещей.Вместо этого вы можете использовать TFS API, что будет относительно безопасным подходом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...