如何查看多个项目启动时具有“开始”操作的所有项目的列表?

时间:2018-06-08 15:34:18

标签: visual-studio-2017

可以启动包含多个程序集的调试会话。虽然对话框很容易用于设置,但很难一目了然地看到哪些项目被选中而没有滚动整个批次。

是否可以仅查看设置为启动的项目?

不介意这是通过Visual Studio本身还是检查某种文件或其他文件。

2 个答案:

答案 0 :(得分:1)

您可以使用以下Visual Commander命令(语言:C#)显示启动项目列表:

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        System.Windows.MessageBox.Show(string.Join(System.Environment.NewLine, GetStartupProjects(DTE).ToArray()));
    }

    System.Collections.Generic.List<string> GetStartupProjects(EnvDTE80.DTE2 dte)
    {
        if (dte != null && dte.Solution != null && dte.Solution.SolutionBuild != null)
        {
            System.Collections.Generic.List<string> result = new System.Collections.Generic.List<string>();
            System.Array projects = dte.Solution.SolutionBuild.StartupProjects as System.Array;
            if (projects != null)
            {
                foreach (string s in projects)
                    result.Add(s);
            }
            return result;
        }
        return null;
    }
}

答案 1 :(得分:0)

如果只希望项目名称本身不包含(可能)冗长的路径名:

using System.Linq;

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package)
    {
        System.Windows.MessageBox.Show(string.Join(System.Environment.NewLine, GetStartupProjects(DTE).ToArray()));
    }

    System.Collections.Generic.List<string> GetStartupProjects(EnvDTE80.DTE2 dte)
    {
        if (dte == null || dte.Solution == null || dte.Solution.SolutionBuild == null) return null;

        var result = new System.Collections.Generic.List<string>();
        var projects = dte.Solution.SolutionBuild.StartupProjects as System.Array;

        if (projects == null) return result;

        result.AddRange(from string s in projects select s.Split('\\') into parts select parts[parts.Length - 1]);

        return result;
    }
}