Comment puis-je obtenir la dernière à partir d'une solution Visual Studio à partir de la ligne de commande?

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

Question

Comment puis-je obtenir la dernière version de ma solution de manière récursive comme c'est fait dans la solution menu contextuel de l'explorateur de Visual Studio?Je veux le faire à partir de la ligne de commande ou via une macro.Je suis en train d'automatiser une partie de ma routine quotidienne en utilisant un ensemble de fichiers batch.Je suis sûr que beaucoup de développeurs aimeraient avoir quelque chose comme cela.

tf get obtient seulement le contenu d'un dossier de manière récursive (pas de solution).Il ne regarde pas dans les dépendances d'un projet et ainsi de suite.Cela ne marchera pas.

Était-ce utile?

La solution

TSF a un .Net SDK qui vous permet de créer vos propres programmes qui interagissent avec un Serveur TFS.Vous pouvez écrire un petit programme qui effectue la tâche dont vous avez besoin:

TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("MyServer");
VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));

WorkSpace[] myWorkSpaces = vcs.QueryWorkSpaces("MyWorkSpaceName", "MyLoginName", "MyComputer");

myWorkSpaces[0].Get(VersionSpec.Latest, GetOptions.GetAll);

Autres conseils

Je suis d'accord que la Solution Explorer "by design" omettre tous ces objets, mais seulement si vous n'avez pas les inclure en tant que Solution d'éléments, qui, je crois, vous devrait inclure dans vos solutions, de sorte qu'un débutant peut ouvrir la solution, faire un Get plus tard, et je sais qu'ils ont toutes les dépendances nécessaires à cette solution, et ne pas avoir à apprendre comment le faire via un outil en ligne de commande, ou utiliser l'Explorateur du Contrôle de Source si ils ne veulent pas.

Y compris tous les non-code dépendances comme éléments de solution (nous organisons la solution de dossiers en utilisant la même structure de dossier comme source de contrôle des dossiers) de réduire le "vaudou" de connaissances requis pour ouvrir et compiler la solution pour les nouveaux développeurs sur un projet.

Il serait bien si vous pouviez lien intégralité du dossier arbres à une solution dans le dossier de VS solution.

Si vous avez des projets dépendants en vertu d'un autre dossier.L'utiliser pour faire une boucle par tous les sous-répertoires d'attraper le plus récent pour chaque projet:

Démarrer dans le répertoire principal C:\Project\SupportingProjects

FOR /D %%G IN ("*") DO ECHO ..from....%%G && tf get C:\Projects\SupportingProjects\%%G 

::Get the latest for the Main project
tf get C:\Projects\MainProject /recursive 

Dans mon cas, le MainProject dossier contient le fichier de solution et le fichier de projet.

J'ai trouvé cela facile et simple.

Plus de sur la POUR la commande: http://ss64.com/nt/for_d.html

Bien...Il semble que vous avez trois options.

  1. Dans votre fichier de lot, numéro un tf obtenir à chaque répertoire branche que vous souhaitez.

  2. réorganiser votre solution de sorte que toutes les dépendances sont sous le même chemin d'accès racine.

  3. Utiliser le mode visuel, un clic droit sur le chargé de projet et l'émission de la commande get.

Le seul moment où c'est en fait la solution de conscience, c'est lorsque le projet est chargé dans l'IDE;ou quand il est chargé par les serveurs de build.

Je sais que vous avez mentionné des fichiers batch, mais permettez-moi de jeter quelque chose d'autre pour vous.

Je suppose que vous utilisez la version 2005 du TSF.2008 a tout le calendrier des trucs construit en.

Cependant, vous pouvez également utiliser CruiseControl.net pour le faire prévue construit pour vous.J'ai utilisé à la fois TFS 2008 et CruiseControl et ils ont tous deux semblent très bien fonctionner.

Encore une solution possible est d'utiliser powershell.Le lien suivant est un projet de code de l'échantillon qui montre comment obtenir une solution de TSF et de construire localement.Powershell est une bien meilleure solution que les fichiers batch.

http://www.codeproject.com/KB/install/ExtractAndBuild.aspx

Ne pas le faire.VS n'est pas aussi intelligent que vous le pensez.(Comme en témoigne le mystérieux & futile extractions que tout le monde a vécu pendant 3+ cycles de vie des produits, vous & I inclus.Ce n'est pas la marque d'un système fiable!)

Ce que vous décrivez ne fonctionne que pour le projet-pour-les références du projet.L'exécution de la source, les opérations de contrôle à partir de l'Explorateur de solutions sera "design" omettre:

  • projet-pour-les références d'assembly
  • la vidéo, du son, des Pdf, ou tout autre type de média que VS ne prend pas en charge, mais peut jouer un rôle essentiel dans le produit
  • MSBuild *.objectifs de fichiers qui sont référencés dans vos projets
  • tous les fichiers de toute nature qui sont référencées à partir d'objectifs personnalisés
  • un 3ème partie exécutables requis par le processus de construction
  • etc

Juste dire pas de à incomplète de la synchronisation.En bas de ce chemin, seulement des maux de tête mensonge.

Run 'tf obtenir" sans chemin de la portée de la ligne de commande, ou clic droit -> Obtenir à partir de la racine $/ nœud dans l'Explorateur du Contrôle de Source.

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