是否可以从 MsBuild Task 类中访问 MsBuildWorkspace



据我了解,Roslyn引入了工作区的概念。Workspaces 的一个实现是 MsBuildWorkspace。

我的问题是,我可以从自定义生成任务中访问表示正在构建的项目的 Roslyn 工作区吗?

我怀疑这就是MsBuildWorkspace的目的。如果是这样,我是否可以从自定义任务(派生自Microsoft.Build.Utilities.Task)中的Execute方法访问此工作区?

如果您想知道为什么,我需要遍历正在构建的项目的其他方面。对我来说,访问任务的特定输入文件以生成输出是不够的。

我怀疑这就是MsBuildWorkspace的目的

不。
MsBuildWorkspace的要点是将 MSBuild 项目或解决方案分析到 Roslyn 工作区中。

MSBuild 本身(这是实际运行 MSBuild 任务的函数)根本不使用 Roslyn(它只是调用使用 Roslyn 实现的 C# 编译任务),因此没有可以获取的现有MsBuildWorkspace

您可以从项目文件创建自己的MsBuildWorkspace

最新更新