Здравствуйте, AlexNek, Вы писали:
Прошу прощения за задержку, скорее всего вы уже разобрались, но на всякий случай переспрошу.
AN>AN>IComponentModel componentModel = _package.GetService<SComponentModel, IComponentModel>();
AN>var workspace = componentModel.GetService<VisualStudioWorkspace>();
AN>foreach (Project project in solution.Projects)
AN>{
AN> foreach (Document document in project.Documents)
AN> {
AN> ...
AN> }
AN>}
AN>
Не видя общего примера судить сложно, но предположу, что вы работаете с
Roslyn-овской моделью солюшена, в которой есть только файлы понятные компиляторам Roslyn (т.е. .cs, .vb и что-то там до кучи).
Если же вы хотите добраться до полного солюшена, вам нужно работать через объекты самой студии. Если мне не изменяет память схема примерно такая:
— как сервис (GetService(...)) получаете интерфейс
DTE
— у него получаете текущий Solution
— перебираете Projects, а в них ProjectItems
Единственное, я не пробовал это делать с новой моделью проектов, но вроде там обещали обратную совместимость, а модель проектов всё равно прячется внутри.