使用 Microsoft.Build 命名空间从 Visual Studio .sln 文件获取项目列表

Mar*_*ent 2 c# microsoft.build visual-studio-2015

我弄清楚了如何使用 Microsoft.Build 命名空间加载 .csproj 文件并提取几个属性:

var projectCollection = new ProjectCollection();
projectCollection.LoadProject(@"C:\path\to\my.csproj");
string assemblyName = projectCollection.LoadedProjects.First().GetPropertyValue("AssemblyName");
string outputPath = projectCollection.LoadedProjects.First().GetPropertyValue("OutputPath");
Run Code Online (Sandbox Code Playgroud)

现在如何使用 Microsoft.Build 加载 .sln 文件并获取 .csproj 文件列表?

Ale*_* L. 5

要解析解决方案文件,您可以使用SolutionFile类:

var solutionFile = SolutionFile.Parse(@"SOLUTION_PATH.sln");
var projectNames = solutionFile.ProjectsInOrder.Select(p => p.ProjectName).ToList();
Run Code Online (Sandbox Code Playgroud)