Como você altera a pasta suspensa para compilações históricas no TFS 2010

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

  •  10-12-2019
  •  | 
  •  

Pergunta

Nosso servidor que tem sido usado para nossos locais de entrega de build está sendo desativado.Eu sei como alterar a definição de compilação atual para usar o novo servidor, mas como alterar os registros históricos de compilações que já foram concluídas?Quero poder abrir compilações anteriores e clicar em 'Abrir pasta suspensa' e ser levado para o novo servidor.Copiaremos manualmente as compilações antigas para o novo servidor.

Foi útil?

Solução

O exemplo a seguir pareceu funcionar:

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());
        }
    }
}

Uma coisa que você deve levar em consideração é que provavelmente não terá o privilégio de atualizar as informações da compilação.Na minha primeira tentativa, embora eu seja administrador do projeto, obtive o seguinte:

TF215106:Acesso negado.DOMAIN Nome de usuário Necessário de atualização As permissões de informações de criação para a definição de construção myBuildDefinition in Team Project MyTeamProject para executar a ação.Para obter mais informações, entre em contato com o administrador do Team Foundation Server.

Para superar isso, defina o botão direito clicando com o botão direito em TeamExplorer "Builds" e selecione "Segurança...".

Outras dicas

Eu não conheço nenhuma ferramenta para fazer isso.Talvez haja um comando TFS PowerShell, mas que eu acho que você poderia - depois de tomar precauções adequadas, é claro - atualize o SQL DB diretamente.

O mapeamento para o local da queda é armazenado na coleção SQL DB em TBL_BUILD.

Selecione [DropLocation], [DropLocationRoot], [LogLocalização] de [TBL_BUILD]

Não tenho certeza se existem implicações no armazém.Pode querer verificar isso primeiro.

Eu acredito que a Microsoft geralmente recomenda o manipulação de SQL diretamente para coisas como esta.Você poderia usar a API do TFS, em vez disso, que seria uma abordagem relativamente segura.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top