2011-08-01 2 views
0

Я изо всех сил пытаюсь найти имена папок в папках TFS.Получить имя папки решения в TFS 2010

У меня есть файл .NET решение в следующем hirerchy:

Решение Файл

-> Решение Папка A -> Проект A

-> Решение Папка B -> Проект B & Проект C

Теперь я хочу, чтобы мое местоположение падения должно быть настроено подобно вышеупомянутой иерархии проектов.

средства: в отброшенных Место должно быть: SolutionName -> SolutionFolderName -> ProjectName -> {построить выход}

Реализуя настроить выходной каталог в моем шаблоне сборки, т.е. $ (TeamBuildOutDir) \ $ (SolutionName) \ $ (MSBuildProjectName), я получаю Название решения -> Название проекта -> Вывод сборок.

Но я не получаю имена имен папок для структуры моих выходов. Кто-нибудь может предложить, как это сделать, чтобы я мог читать из файлов проекта. Спасибо заранее.

+0

Пакеты решений не существуют в файловой системе. –

+0

Hi Demon Bee, добро пожаловать в stackoverflow. Я заметил, что ваш ответ опубликован ниже, только некоторая помощь, чтобы сделать вещи более гладкими, ответьте на другие ответы, используя «добавить комментарий» к их ответу. Вам нужно только добавить ответ на свой вопрос, если вы считаете, что решили его самостоятельно и хотите поделиться своим решением. Повеселись! – Evolve

+0

любое окончательное решение с полным образцом исходного кода, работающим над этим? – Kiquenet

ответ

0

Вы можете установить свойство в проектах, соответствующих имени папки решения (например, $(SolutionFolder)). Затем вы можете установить выходной каталог на $(TeamBuildOutDir)\$(SolutionFolder).

0
public static TeamProject[] GetAllProjects(TfsTeamProjectCollection prjCollection) 
    { 
     var versionControl = prjCollection.GetService<VersionControlServer>(); 
     return versionControl.GetAllTeamProjects(true); 
    } 
    public static ProjectCollection GetAllIterations(TfsTeamProjectCollection prjCollection) 
    { 
     var wiStore = prjCollection.GetService<WorkItemStore>(); 
     return wiStore.Projects; 
    } 

    /// <summary> 
    /// function to get all system project name 
    /// </summary> 
    private void IterateFolder() 
    { 
     try 
     { var selectedProject = "EMRConversion"; 

      Project detailsOfTheSelectedProject = null; 

      var projCollections = GetAllIterations(prjCollection); 

      foreach (Project project in projCollections) 
      { 
       if (!String.IsNullOrEmpty(selectedProject)) 
       { 
        if (project.Name.ToString().Contains(selectedProject)) 
        { 
         detailsOfTheSelectedProject = project; 
         break; 
        } 
       } 
      } 

      if (detailsOfTheSelectedProject != null) 
      { 
       cmbSystemName.Items.Clear(); 

       foreach (Node area in detailsOfTheSelectedProject.AreaRootNodes) 
       { 
        if (!(area.HasChildNodes)) 
        { 
         cmbSystemName.Items.Add(area.Name); 
        } 

        foreach (Node item in area.ChildNodes) 
        { 
         cmbSystemName.Items.Add(item.Name); 
        } 
       } 


      } 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 
+1

Может добавить небольшой текст? – Rob

Смежные вопросы