Универсальные и зависящие от языка модели проектов
Надстройки Visual Studio выступан сопоставления в Visual Studio 2013. Необходимо обновить для надстройки с расширениями VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.
Visual Studio предоставляет два типа моделей проектов: универсальные и относящиеся к определенному языку.
Универсальная модель проекта
Универсальная модель проекта представлена следующими типами:
Имя объекта |
Описание |
---|---|
Коллекция Projects |
Представляет все проекты решения. |
Объект Project |
Представляет один проект решения. |
Коллекция ProjectItems |
Представляет все элементы указанного проекта. |
Объект ProjectItem |
Представляет один элемент указанного проекта. |
С помощью этих объектов можно управлять проектами любого языка в Visual Studio. Они позволяют:
Сохранять и удалять проекты.
Создавать новые элементы проекта, основанные на шаблонах Visual Studio.
Добавлять в проект существующие элементы из файлов.
Удалять элементы из проекта.
Открывать, сохранять или удалять элементы проекта.
Модель проекта, зависящая от языка
Кроме универсальных объектов, относящихся к проектам, набор пространств имен представляет зависящие от языка программирования свойства проекта и элементов проекта. К ним относятся следующие пространства имен:
Проекты языка представляются объектами VSProject и VSProject2. VSProject2 является производным от VSProject, который в свою очередь является производным от Project. Элементы проекта представлены объектами VSProjectItem.
Язык программирования |
Пространства имен |
---|---|
Visual C# |
|
Visual Basic |
|
Visual C++ |
Microsoft.VisualStudio.VCProject и Microsoft.VisualStudio.VCProjectEngine. |
Все языки программирования |
Поскольку зависящие от языка объекты являются производными от универсальных, они работаюn практически так же, за исключением того, что предоставляют доступ к любым дополнительным свойствам, методам и событиям, который невозможно получить с универсальными объектами Project и ProjectItem.
Дополнительные сведения об использования языковой модели проекта см. в разделе Введение в технологию расширения проектов.
Изменения в проектах Visual Studio .NET C Visual C++
В Visual Studio .NET и за пределами, особой обработки для коллекции ProjectItems для Visual C++ больше не нужен. Иными словами, если раньше коллекция Projects Visual C++ сохраняла все файлы проекта Visual C++ в одноуровневом списке, то теперь файлы сохраняются иерархически, как и в других языках программирования.
Поскольку данное изменение может повлиять на существующий код, то при попытке индексирования коллекции ProjectItems, чтобы определить, находится ли файл в проекте, можно воспользоваться эмуляцией прежнего поведения в новой модели объектов для определенного проекта. Главным отличием является то, что теперь можно вернуться к модели объектов DTE, вызвав .Object в объекте Visual C++.
[Visual Basic]
Dim proj as VCProject = DTE.ActiveSolutionProjects(1).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object
См. также
Задачи
Практическое руководство. Создание проектов программными средствами
Практическое руководство. Создание элементов проекта программными средствами