Re: VS Package - как получить все файлы из солюшин
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 15.09.20 07:56
Оценка:
Здравствуйте, 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

Единственное, я не пробовал это делать с новой моделью проектов, но вроде там обещали обратную совместимость, а модель проектов всё равно прячется внутри.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.