Получить имя папки решения в TFS 2010 - PullRequest
0 голосов
/ 01 августа 2011

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

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

Файл решения

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

-> Папка с решениями B -> Проект B & Project C

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

означает: в месте размещения должно быть: SolutionName -> SolutionFolderName -> ProjectName -> {build output}

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

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

Ответы [ 2 ]

0 голосов
/ 29 марта 2012
    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;
        }
    }
0 голосов
/ 02 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...