使用 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,它也需要那么长时间。
我正在开发一个静态分析程序来分析我在 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,它也需要那么长时间。