使用 Rosyln 更快地加载 C# 解决方案

Loading C# solution faster with Rosyln

我正在开发一个静态分析程序来分析我在 C# 中的项目。

我使用 Roslyn 来完成这项工作。我要分析的项目非常大,大约有 300 个项目。当我使用下面的代码时,大约需要 1.5 分钟。

var solutionName="solutionPath.sln";
MSBuildWorkspace workSpace = MSBuildWorkspace.Create();
Solution solution = workSpace.OpenSolutionAsync(solutionName).Result;

1.5 分钟的加载时间对我来说更多,因为我的 Visual Studio 在大约 10 秒内加载了这个解决方案。

有什么方法可以减少这个加载时间吗?

可能不会;那个时间大致是我对那种规模的解决方案的期望。 Visual Studio 正在缓存您上次加载内容的结果(不,在 MSBuildWorkspace 中没有使用该缓存的简单方法)。我敢打赌,如果您通过解决方案删除了​​隐藏的 .vs 文件夹并重新打开 Visual Studio,它也需要那么长时间。