¿Cómo cambia la carpeta DROP para las compilaciones históricas en TFS 2010

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

  •  10-12-2019
  •  | 
  •  

Pregunta

Nuestro servidor que se ha utilizado para nuestras ubicaciones de caída de compilación está siendo retirado.Sé cómo cambiar la definición de compilación actual para usar el nuevo servidor, pero ¿cómo cambia los registros históricos para las compilaciones que ya han completado?Quiero poder abrir las compilaciones anteriores y hacer clic en 'Abrir carpeta de caída' y ser llevada al nuevo servidor.Copiaremos manualmente las antiguas compilaciones al nuevo servidor.

¿Fue útil?

Solución

La siguiente muestra pareció 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());
        }
    }
}


Una cosa que debe tener en cuenta es que probablemente le faltará el privilegio de actualizar la información de construcción.En mi primer intento, aunque soy un administrador de proyectos, obtuve lo siguiente:

tf215106: Acceso denegado.Dominio \ Nombre de usuario Necesita Update Build Permisos de información para la definición de construcción MyBuildDefinition en equipo Proyecto myTeamProject para realizar la acción.Para más información, Póngase en contacto con el administrador del servidor de la Fundación del equipo.

Para superar esto, establezca la derecha haciendo clic con el botón derecho en TeamExplorer "Builds" y luego seleccione "Seguridad ...".

Otros consejos

No sé de ninguna herramienta para hacer esto.Tal vez haya un comando TFS PowerShell, pero corto de eso creo que podría, después de tomar las precauciones adecuadas, por supuesto, actualizar directamente el SQL DB.

El mapeo en la ubicación de la caída se almacena en la colección SQL DB en TBL_BUILD.

Seleccione [Droplocation], [DropLocationRoot], [LOGLOCACION] de [tbl_build]

No estoy seguro de si hay alguna implicación en el almacén.Podría querer verificar eso primero.

Creo que Microsoft generalmente recomienda contra la manipulación de SQL directamente para cosas como esta.Puede usar la API de TFS, en su lugar, que sería un enfoque relativamente seguro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top