Как вы меняете папку Drop для исторических сборков в TFS 2010

StackOverflow https://stackoverflow.com//questions/9636889

  •  10-12-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Следующий образец, казалось, работал:

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 для выполнения действия.Для дополнительной информации, Свяжитесь с администратором сервера Foundation Team Foundation.

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

Другие советы

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

Сопоставление на местоположение падения хранится в коллекции SQL DB в TBL_BUILD.

Выберите [Droplocation], [DroplocationRoot], [loglocation] из [tbl_build]

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top