2016-10-02 2 views
2

Je développe un programme d'analyse statique pour analyser mon projet en C#. J'utilise Roslyn pour ce travail. Mon projet que je veux analyser est très gros et environ 300 projets. Quand j'utilise le code ci-dessous, cela prend environ 1,5 minute.Chargement de la solution C# plus rapidement avec Rosyln

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

temps de chargement de 1,5 minute pour moi est plus, parce que mes charges Visual Studio cette solution en 10 secondes environ.

Y a-t-il un moyen de réduire ce temps de chargement?

+0

Visual Studio continue de charger les projets en arrière-plan après l'ouverture de la solution, ce qui constitue une comparaison injuste. Pour l'accélérer, achetez un SSD. – CodeCaster

+0

merci pour votre commentaire. J'utilise SSD – user2352554

Répondre

1

Probablement pas; ce temps est à peu près ce que j'attends d'une solution de cette taille. Visual Studio met en cache le résultat de la dernière fois que vous avez chargé des éléments (et non, il n'existe aucun moyen simple d'utiliser cette mise en cache dans MSBuildWorkspace). Je parie que si vous avez supprimé le dossier .vs caché par votre solution et ré-ouvert Visual Studio, il prendrait aussi longtemps.

+0

merci pour votre réponse, je crée une nouvelle configuration et décochez la case de débogage pour mes projets dans le Gestionnaire de configuration pour ma nouvelle configuration. et je charge la solution à Roslyn avec une nouvelle configuration. Je peux charger ça plus vite que. mais certaines limitations sont survenues de cette manière. les métadonnées pour les projets étaient nulles. – user2352554