Поделиться через


Практическое руководство. Создание элементов проекта программными средствами

Для создания элементов проекта программными средствами сначала необходимо вызвать 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.Дополнительные сведения см. в разделе Работа с параметрами.

Добавление элементов в проекты

Чтобы добавить элементы в проект программными средствами

  1. Запустите Visual Studio и создайте проект надстройки Visual Studio.

  2. Добавьте код, приведенный ниже в этом разделе, в класс надстройки Connect.

  3. Запустите проект надстройки и активируйте его в Диспетчере надстроек. Для этого выберите команду Диспетчер надстроек в меню Сервис, а затем выберите поля рядом с надстройкой.

Пример

В следующем примере кода демонстрируется добавление элементов к существующему проекту 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

Другие ресурсы

Управление решением и относящимися к нему проектами