Roslyn - 将分析器集成到构建中,避免双重编译

Roslyn - integrate analyzer into build avoiding double compilation

我目前正在使用 Roslyn 开发代码分析器。我需要获得我的解决方案的Semantic model,这需要进行编译。我想将此分析器集成到我们的构建过程中(我们使用 MSBuild)。目前它看起来像这样:

这意味着解决方案被编译了两次,我想避免这种情况。 如何实现只编译一次?

目前我正在考虑制作一个控制台应用程序,它将使用 Roslyn 编译解决方案、分析它并生成生成的 DLL 并输出它们,从而有效地用我自己的步骤替换当前的 compile 步骤。这可能/合理吗?

您应该实施 Roslyn 分析器,它作为编译的一部分运行。

Documentation