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

#c# #roslyn #roslyn-code-analysis

#c# #roslyn #roslyn-анализ кода

Вопрос:

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

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

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

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

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

Комментарии:

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

2. спасибо за ваш комментарий. я использую SSD

Ответ №1:

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

Комментарии:

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