Загрузка решения C# быстрее с помощью Rosyln

Я разрабатываю программу статического анализа для анализа моего проекта на С#.

Я использую Roslyn для этой работы. Мой проект, который я хочу проанализировать, очень большой, около 300 проектов. Когда я использую приведенный ниже код, это занимает около 1,5 минут.

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

1,5 минуты загрузки для меня больше, потому что моя Visual Studio загружает это решение примерно за 10 секунд.

Есть ли способ уменьшить это время загрузки?


person user2352554    schedule 02.10.2016    source источник
comment
Visual Studio продолжает загружать проекты в фоновом режиме после открытия решения, так что это несправедливое сравнение. Для ускорения купите SSD.   -  person CodeCaster    schedule 02.10.2016
comment
Спасибо за ваш комментарий. я использую твердотельный накопитель   -  person user2352554    schedule 02.10.2016


Ответы (1)


Возможно нет; это время примерно то, что я ожидаю от решения такого размера. Visual Studio кэширует результат последней загрузки материала (и нет, нет простого способа использовать это кэширование в MSBuildWorkspace). Бьюсь об заклад, если вы удалите скрытую папку .vs своим решением и снова откроете Visual Studio, это займет примерно столько же времени.

person Jason Malinowski    schedule 03.10.2016
comment
спасибо за ваш ответ, я создаю новую конфигурацию и снимаю флажок отладки для моих проектов в диспетчере конфигураций для моей новой конфигурации. и я загружаю решение в Roslyn с новой конфигурацией. Я могу загрузить это быстрее, чем. но на этом пути произошло некоторое ограничение. метаданные для проектов были нулевыми. - person user2352554; 07.10.2016