列出解决方案中所有项目的输出类型

时间:2017-12-01 10:01:36

标签: c# visual-studio

有没有办法列出解决方案中的所有项目,包括每个项目的输出类型?

1 个答案:

答案 0 :(得分:1)

在独立程序中有一种更具编程性的方法,它不依赖于所安装的任何外部程序。

Roslyn及其Workspace API的帮助下,您可以加载解决方案文件,枚举包含的项目,并检索每个项目的输出类型。

将需要以下NuGet包:

代码看起来像这样:

string slnFilePath = "..."; // path to SLN file

MSBuildWorkspace workspace = MSBuildWorkspace.Create();
var solution = workspace.OpenSolutionAsync(slnFilePath).Result;

foreach (var project in solution.Projects)
{
    Console.WriteLine($"{project.Name} : {project.CompilationOptions.OutputKind}");
}

其中OutputKind的枚举定义如下:

public enum OutputKind
{
    ConsoleApplication,
    WindowsApplication,
    DynamicallyLinkedLibrary,
    NetModule,
    WindowsRuntimeMetadata,
    WindowsRuntimeApplication,
}