2012-07-17 3 views
1

j'ai créer une application console qui prend deux arguments en entrée un fichier .xml et donne une sortie comme fichier .htmcomment obtenir un chemin de TFS dans la console d'application

ci-dessous est un code pour les TFS accès

TfsTeamProjectCollection teamProjectCollection = 
       TfsTeamProjectCollectionFactory.GetTeamProjectCollection 
       (new Uri("http://myServer:8080/tfs/defaultcollection")); 

      var buildService = (IBuildServer)teamProjectCollection.GetService(
               typeof(IBuildServer)); 

IBuildDefinition myBuildDefination = buildService.GetBuildDefinition(
        "MyProjectName", "MyBuildDefinationName"); 
      Uri lastKnownGoodBuild = myBuildDefination.LastGoodBuildUri; 
      IBuildDetail myBuildDetail = buildService.GetBuild(lastKnownGoodBuild); 
      string dropLocation = myBuildDetail.DropLocation; 

mais ci-dessus ne semble pas fonctionner pour moi ... alors j'ai pensé à passer manuellement le chemin. comme vous pouvez le voir dans le code ci-dessous l'extrait

// i have just added blackslash at the start and my problem solved 
    string xmlfile = "\\\\myTfsPath\\CodeMetricsResult.xml"; 
    if (File.Exists(xmlfile)) 
    { 
      //do something 
    } 

mais pour une raison ... il va toujours à mon bloc autre.

s'il vous plaît laissez-moi ce que je fais mal

note .... le chemin de TFS est en réseau et j'ai tout accès.

grâce,

Répondre

0

La dernière partie doit travailler pour une entrée complète qui pointe vers un fichier existant @"C:\Folder\CodeMetricsResult.xml"
C'est valable même pour les fichiers de votre réseau @"\\netdrive\Folder\CodeMetricsResult.xml"

J'essayées votre extrait qui utilise le TFS-SDK et a bien fonctionné. Quelques conseils:

  • Assurez-vous que http://myServer:8080/tfs/defaultcollection est correct par un clic droit sur la racine de votre TeamCollection dans Team Explorer, sélectionnez « Propriétés » et vérifier que l'entrée dans les matchs « URL ».
  • Vérifiez que MyProjectName correspond au nom exact de votre TeamProject et MyBuildDefinationName votre nom de définition de construction.
  • Cliquez avec le bouton droit sur MyBuildDefinitionName sous "Générer" et sélectionnez "Modifier la définition de construction". Naviguez sous "BuildDefaults" et vérifiez que "Cette construction copie les fichiers de sortie dans un dossier de dépôt".
  • Vérifiez que la dernière version réussie de MyBuildDefinionName est toujours persistante (= n'a pas été supprimée). Pour ce faire, faites un clic droit sur TeamExplorer, sélectionnez "ViewBuilds" et trouvez-le dans l'Explorateur de construction qui apparaît. Une fois que vous l'avez trouvé, cliquez sur "ouvrir le dossier de dépôt" dans le résumé de la construction, pour vous assurer que TFS l'a conservé.
Questions connexes