2016-10-02 93 views
2

我正在開發一個靜態分析程序,用於分析C#中的項目。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秒鐘內加載了這個解決方案。

有什麼辦法可以減少這個加載時間嗎?

+0

Visual Studio在打開解決方案後不斷加載項目,所以這是一個不公平的比較。爲了加快速度,購買SSD。 – CodeCaster

+0

感謝您的評論。我使用SSD – user2352554

回答

1

可能不是;那個時間大概是我期望得到的那種大小的解決方案。 Visual Studio正在緩存上次加載內容的結果(並且不,在MSBuildWorkspace中沒有簡單的方法來使用該緩存)。我敢打賭,如果您通過解決方案刪除了​​隱藏的.vs文件夾並重新打開了Visual Studio,那麼需要花費很長時間。

+0

感謝您的回覆,我創建了一個新的配置,並取消選中我配置管理器中用於我的新配置的項目的調試複選框。我用新的配置將解決方案加載到Roslyn中。我可以加載速度比。但通過這種方式發生了一些限制。項目的元數據爲零。 – user2352554

相關問題