在 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 项目。