Comment modifiez-vous le dossier DROP pour les bâtiments historiques dans TFS 2010

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

  •  10-12-2019
  •  | 
  •  

Question

Notre serveur utilisé pour nos emplacements de construction est en cours de retraite.Je sais comment changer la définition de construction actuelle pour utiliser le nouveau serveur, mais comment modifiez-vous les enregistrements historiques des constructions déjà terminées?Je souhaite pouvoir ouvrir des constructions antérieures et cliquer sur "Ouvrir le dossier Drop" et être dirigé vers le nouveau serveur.Nous allons copier manuellement les anciennes bâties sur le nouveau serveur.

Était-ce utile?

La solution

L'échantillon suivant semblait fonctionner:

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


Une chose que vous devriez prendre en compte est que vous allez probablement manquer au privilège pour mettre à jour des informations de construction.Lors de ma première tentative, même si je suis un projet administrateur, j'ai eu les suivants:

TF215106: accès refusé.Domaine \ Nom d'utilisateur a besoin de mise à jour Build Autorisations d'information pour la définition de la définition de construction MyBuildDefinition en équipe projet myTeamProject pour effectuer l'action.Pour plus d'informations, Contactez l'administrateur de serveur de la Fondation Team Foundation.

Pour surmonter cela, définissez la droite en cliquant avec le bouton droit de la souris sur TeamExplorer "Builds", puis sélectionnez "Sécurité ...".

Autres conseils

Je ne connais aucun outil pour le faire.Peut-être qu'il y a une commande TFS PowerShell, mais à court de cela, je pense que vous pouvez - après avoir pris des précautions appropriées bien sûr - mettre à jour le SQL DB directement.

Le mappage à l'emplacement de la goutte est stocké dans la collection SQL DB dans Tbl_Build.

Sélectionnez [DropLocation], [DroplocalisationRoot], [Loglocation] à partir de [TBL_BUILD]

Je ne suis pas sûr s'il y a des conséquences sur l'entrepôt cependant.Pourrait vouloir vérifier cela en premier.

Je crois que Microsoft recommande généralement de manipuler SQL directement pour des trucs comme celui-ci.Vous pouvez utiliser l'API TFS plutôt qui serait une approche relativement plus sûre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top