查找解决方案和项目的组合框

本文关键字:组合 项目 解决方案 查找 | 更新日期: 2023-09-27 17:53:56

我们目前使用windows UI表单和ComboBox来选择要运行的特定测试。在代码中,我们特别提供了要运行的测试的名称,并将其传递给应用程序以运行它们。我只是想知道是否有一种方法可以让UI表单中的ComboBox读取默认集合下的资源管理器,或者其中的文件夹并拉出解决方案和解决方案内项目的名称。

例如

ComboBox_1将在一个文件夹中找到解决方案,您可以选择一个。ComboBox_2将查看所选解决方案中的所有项目,并可以选择其中一个项目。Button_1将运行选中的项目。

如果你还需要什么,或者如果不清楚,请告诉我。

查找解决方案和项目的组合框

您可以列出文件夹下的文件,并通过具有"。sln"扩展。这将是文件夹中的解决方案文件。

string[] files=Directory.GetFiles("folder path");
        List<string> lstSolutions = new List<string>();
        foreach (string file in files)
        {
            if (file.Contains(".sln"))
                lstSolutions.Add(file);
        }

然后你可以使用类似这样的命令在解决方案中获取项目

var Content = File.ReadAllText(SlnPath);
Regex projReg = new Regex(
    "Project''('"''{[''w-]*''}'"'') = '"([''w _]*.*)'", '"(.*''.(cs|vcx|vb)proj)'""
    , RegexOptions.Compiled);
var matches = projReg.Matches(Content).Cast<Match>();
var Projects = matches.Select(x => x.Groups[2].Value).ToList();
for (int i = 0; i < Projects.Count; ++i)
{
    if (!Path.IsPathRooted(Projects[i]))
        Projects[i] = Path.Combine(Path.GetDirectoryName(SlnPath),
            Projects[i]);
    Projects[i] = Path.GetFullPath(Projects[i]);
}

列出解决方案中的项目