Roslyn - Использование 

Page / - Изменено Alexandr Fokin в 2023/07/02 10:54 

Использование 
Изменено Alexandr Fokin
в 2023/07/02 10:54

Оглавление

  //Nuget:
 //Microsoft.CodeAnalysis
 //Microsoft.CodeAnalysis.Common
 //Microsoft.CodeAnalysis.Workspaces.Common
 //Microsoft.CodeAnalysis.Workspaces.MSBuild
 //Microsoft.Build.Locator

  MSBuildLocator.RegisterDefaults();

 using (var msWorkspace = MSBuildWorkspace.Create())
  {
    msWorkspace.WorkspaceFailed += (object sender, WorkspaceDiagnosticEventArgs e) =>
    {
       //loadSolutionError = e;
       //Error handler
   };

   var solution = await msWorkspace.OpenSolutionAsync(solutionPath);
   var projects = solution.Projects;

   // ...
 }
•	Для исследования кода можно использовать либо Visitor (CSharpSyntaxRewriter), либо получение списка всех синтаксических выражений в документе.
•	Для использования механизма поиска ссылок используется класс Microsoft.CodeAnalysis.FindSymbols.SymbolFinder.
DustinCampbell/using-msbuildworkspace.md
https://gist.github.com/DustinCampbell/32cd69d04ea1c08a16ae5c4cd21dd3a3