我们目前使用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]);
}
列出解决方案中的项目