Visual studio 2010 获取TFS 2010中的解决方案文件夹名称

Visual studio 2010 获取TFS 2010中的解决方案文件夹名称,visual-studio-2010,tfs,Visual Studio 2010,Tfs,我正在努力获取TFS放置位置中的解决方案文件夹名称 我在以下Hirrchy中有一个.NET解决方案文件: 解决方案文件 -->解决方案文件夹A-->项目A -->解决方案文件夹B-->项目B和项目C 现在我希望我的放置位置应该像上面的项目层次结构一样进行定制 意思是:在放置位置中,它应该是:SolutionName->SolutionFolderName->ProjectName->{build output} 通过在生成模板中实现自定义输出目录,即$(TeamBuildOutDir)\$(So

我正在努力获取TFS放置位置中的解决方案文件夹名称

我在以下Hirrchy中有一个.NET解决方案文件:

解决方案文件

-->解决方案文件夹A-->项目A

-->解决方案文件夹B-->项目B和项目C

现在我希望我的放置位置应该像上面的项目层次结构一样进行定制

意思是:在放置位置中,它应该是:SolutionName->SolutionFolderName->ProjectName->{build output}

通过在生成模板中实现自定义输出目录,即$(TeamBuildOutDir)\$(SolutionName)\$(MSBuildProjectName),我将获得解决方案名称->项目名称->生成输出

但我没有获得解决方案文件夹名称来组织我的输出。有谁能建议如何得到这个,这样我就可以阅读我的项目文件。
提前感谢。

您可以在项目中设置与解决方案文件夹名称对应的属性(例如,
$(SolutionFolder)
)。然后您可以将输出目录设置为
$(TeamBuildOutDir)\$(SolutionFolder)

公共静态团队项目[]GetAllProjects(TfsTeamProjectCollection prjCollection)
{   
var versionControl=prjCollection.GetService();
返回versionControl.GetAllTeamProjects(true);
}
公共静态项目集合GetAllIterations(TfsTeamProjectCollection prjCollection)
{
var wiStore=prjCollection.GetService();
返回wiStore.Projects;
}
/// 
///函数获取所有系统项目名称
/// 
私有void IterateFolder()
{
尝试
{var selectedProject=“EMRConversion”;
项目详细信息SelectedProject=null;
var projCollections=GetAllIterations(prjCollection);
foreach(项目集合中的项目)
{
如果(!String.IsNullOrEmpty(selectedProject))
{
if(project.Name.ToString()包含(selectedProject))
{
所选项目的详细信息=项目;
打破
}
}
}
if(detailsOfTheSelectedProject!=null)
{
cmbSystemName.Items.Clear();
foreach(所选项目的详细节点区域。区域根节点)
{
if(!(area.HasChildNodes))
{
cmbSystemName.Items.Add(area.Name);
}
foreach(区域.ChildNodes中的节点项)
{
cmbSystemName.Items.Add(item.Name);
}
}
}
}
捕获(例外情况除外)
{
掷骰子;
}
}

文件系统中不存在解决方案文件夹。嗨,Demon Bee,欢迎使用stackoverflow。我注意到你的答案贴在下面,只是一些帮助,使事情顺利进行,回答其他人的答案使用'添加评论'对他们的答案。如果您认为自己已经解决了问题,并且想分享您的解决方案,您只需要为自己的问题添加一个答案。玩得高兴是否有完整源代码示例的最终解决方案?
    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;
        }
    }