Исходный код вики Использование

Версия 3.1 от Alexandr Fokin на 2021/11/08 11:17

Скрыть последних авторов
Alexandr Fokin 1.1 1
2 {{code language="c#"}}
3 //Nuget:
4 //Microsoft.CodeAnalysis
5 //Microsoft.CodeAnalysis.Common
6 //Microsoft.CodeAnalysis.Workspaces.Common
7 //Microsoft.CodeAnalysis.Workspaces.MSBuild
8 //Microsoft.Build.Locator
9
10 MSBuildLocator.RegisterDefaults();
11
12 using (var msWorkspace = MSBuildWorkspace.Create())
13 {
14 msWorkspace.WorkspaceFailed += (object sender, WorkspaceDiagnosticEventArgs e) =>
15 {
16 //loadSolutionError = e;
17 //Error handler
18 };
19
20 var solution = await msWorkspace.OpenSolutionAsync(solutionPath);
21 var projects = solution.Projects;
22
23 ...
24 }
25
26 {{/code}}
Alexandr Fokin 2.1 27
28
Alexandr Fokin 3.1 29 * Для исследования кода можно использовать либо Visitor (CSharpSyntaxRewriter), либо получиние списка всех синтаксических выражений в документе.
30 * Для использования механизма поиска ссылок используется класс Microsoft.CodeAnalysis.FindSymbols.SymbolFinder.
Alexandr Fokin 2.1 31
32
33 DustinCampbell/using-msbuildworkspace.md
34 https://gist.github.com/DustinCampbell/32cd69d04ea1c08a16ae5c4cd21dd3a3