我们目前使用Windows UI表单和ComboBox来选择要运行的特定测试。在代码中,我们专门提供要运行的测试名称,并将其传递给应用程序以运行它们。 我只是想知道是否有办法让UI形式的ComboBox读取默认集合下的资源管理器,或者其中的文件夹,并在解决方案中提取解决方案和项目的名称。
例如 ComboBox_1会在文件夹中找到解决方案,您可以选择一个。 ComboBox_2将查看所选解决方案中的所有项目,并且可以选择其中一个。 然后Button_1将运行所选项目。
如果您还有其他需要或者不清楚,请告诉我。 提前干杯。
答案 0 :(得分:0)
您可以列出文件夹下的文件,并按照包含" .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]);
}