在 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 專案。