Практическое руководство. Создание элементов проекта программными средствами
Для создания элементов проекта программными средствами сначала необходимо вызвать GetProjectItemTemplate, а затем передать возвращенные пути шаблона в AddFromTemplate. Дополнительные сведения см. в разделе Шаблоны Visual Studio.
Метод GetProjectItemTemplate возвращает шаблон из соответствующего ZIP-файла для использования с методом AddFromTemplate. Шаблоны элементов проекта для всех языков находятся в папке Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\язык\.
Кроме того, можно создавать собственные шаблоны элементов проекта. Чтобы выбрать папку для хранения шаблонов, выберите команду Параметры в меню Сервис. В левой части окна Параметры щелкните элемент Проекты и решения. Введите путь для шаблонов в поле Размещение пользовательских шаблонов элементов Visual Studio.
Для пользовательских шаблонов необходимы уникальные имена файлов, не конфликтующие с именам файлов, определенными в папке Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\язык\.
Убедитесь в том, что используются длинные имена файлов (а не соглашение 8.3). Дополнительные сведения см. в разделе Создание шаблонов проектов и элементов.
Для удаления проектов из решения используйте Remove.
В следующем примере рассматривается универсальный метод для создания элементов проекта. В подразделах, перечисленных в разделе “См. также”, рассматриваются способы использования моделей, зависящих от языка.
Примечание
На компьютере могут отображаться другие имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях.Эти элементы определяются используемой версией и параметрами Visual Studio.Дополнительные сведения см. в разделе Работа с параметрами.
Добавление элементов в проекты
Чтобы добавить элементы в проект программными средствами
Запустите Visual Studio и создайте проект надстройки Visual Studio.
Добавьте код, приведенный ниже в этом разделе, в класс надстройки Connect.
Запустите проект надстройки и активируйте его в Диспетчере надстроек. Для этого выберите команду Диспетчер надстроек в меню Сервис, а затем выберите поля рядом с надстройкой.
Пример
В следующем примере кода демонстрируется добавление элементов к существующему проекту Visual Basic программными средствами.
' Before running the following code, be sure that a Visual Basic
' project is open in Visual Studio.
Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
_applicationObject = CType(application, DTE2)
_addInInstance = CType(addInInst, AddIn)
createProjectItem(_applicationObject)
End Sub
Sub createProjectItem(ByVal dte As DTE2)
' Adds a new Class to an existing Visual Basic project.
Dim soln As Solution2
Dim prj As Project
soln = CType(_applicationObject.Solution, Solution2)
Dim prjItem As ProjectItem
Dim itemPath As String
' Point to the first project (the Visual Basic project).
prj = soln.Projects.Item(1)
' Retrieve the path to the Class template.
itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj")
' Create a new project item based on the template, in this case,
' a Class.
prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass")
End Sub
// Before running the following code, be sure that a Visual Basic
// project is open in Visual Studio.
public void OnConnection(object application,
Extensibility.ext_ConnectMode connectMode, object addInInst, ref
System.Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
// Pass the applicationObject member variable to the code example.
createProjectItem(_applicationObject);
}
public void createProjectItem(DTE2 dte)
{
//Adds a new Class to an existing Visual Basic project.
Solution2 soln;
Project prj;
soln = (Solution2)_applicationObject.Solution;
ProjectItem prjItem;
String itemPath;
// Point to the first project (the Visual Basic project).
prj = soln.Projects.Item(1);
// Retrieve the path to the class template.
itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj");
//Create a new project item based on the template, in this
// case, a Class.
prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass");
}
Компиляция кода
Для компиляции кода создайте новый проект надстройки Visual Studio и замените код в классе Connect.cs или Connect.vb кодом из данного примера. Перед запуском надстройки откройте проект Visual Basic в Visual Studio. Сведения о запуске надстройки см. в разделе Практическое руководство. Управление надстройками с помощью диспетчера надстроек.
Отказоустойчивость
При использовании имен элементов проекта для Solution.Projects.Item необходимо использовать уникальное имя проекта. Уникальное имя проекта — это относительный путь к файлу проекта от каталога, содержащего файл решения (SLN).
В качестве примера рассмотрим следующую структуру проекта/решения.
SomeSolution.sln
WinApp1
WinApp1.VBProj
Уникальным именем для проекта будет "WinApp1/WinApp1.VBProj", а вызовом метода элемента — Solution.Projects.Item("WinApp1/WinApp1.VBProj").
См. также
Задачи
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации
Практическое руководство. Создание проектов программными средствами
Основные понятия
Управление проектами Visual Basic и Visual C#
Управление проектами Visual ++
Знакомство с шаблонами Visual Studio