在 C 中分析一个简单的 Hello World 应用程序

使用 Main 方法中的一行创建一个新的控制台应用程序:Console.WriteLine("Hello World")

记住 .csproj 文件的路径并在示例中替换它。

创建一个新的控制台应用程序并安装 Microsoft.CodeAnalysis NuGet 包并尝试以下代码:

const string projectPath = @"C:\HelloWorldApplication\HelloWorldProject.csproj";

// Creating a build workspace.
var workspace = MSBuildWorkspace.Create();
        
// Opening the Hello World project.
var project = workspace.OpenProjectAsync(projectPath).Result;

// Getting the compilation.
var compilation = project.GetCompilationAsync().Result;

foreach (var tree in compilation.SyntaxTrees)
{
    Console.WriteLine(tree.FilePath);

    var rootSyntaxNode = tree.GetRootAsync().Result;

    foreach (var node in rootSyntaxNode.DescendantNodes())
    {
        Console.WriteLine($" *** {node.Kind()}");
        Console.WriteLine($"     {node}");
    }
}

Console.ReadKey();

这将打印的所有文件和所有的语法节点在你的 Hello World 项目。