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


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

Обновлен: Ноябрь 2007

Для создания проектов сначала необходимо вызвать GetProjectTemplate, а затем передать возвращенные пути к шаблону в AddFromTemplate.

Шаблоны проектов с расширением VSTEMPLATE хранятся в ZIP-файлах. Чтобы получить путь к файлу VSTEMPLATE (внутри ZIP-файла), используйте GetProjectTemplate, которые затем передаются в AddFromTemplate для создания проекта (и решения, если оно еще не открыто). Эту операцию можно выполнять любое число раз, и каждый проект будет добавлен к открытому в данный момент решению.

Шаблоны проектов для всех языков находятся в папке <<диск>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\язык

Кроме того, можно создавать собственные шаблоны проектов. Чтобы выбрать папку для хранения шаблонов, в меню Сервис щелкните Параметры. В левой части окна Параметры щелкните Проекты и решения. Введите пути для своих шаблонов в поле Размещение пользовательских шаблонов проектов Visual Studio. Также можно использовать местоположение по умолчанию.

Для пользовательских шаблонов проектов необходимы уникальные имена файлов, не конфликтующие с именам файлов, определенными в папке: <диск>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\язык.

Следует использовать длинные имена файлов (а не имена в формате 8.3). Дополнительные сведения см. в разделе Создание шаблонов проектов и элементов.

ms228767.alert_note(ru-ru,VS.90).gifПримечание.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска. Эти процедуры были разработаны с обычными параметрами разработки. Чтобы изменить настройки, в меню Сервис выберите команду Импорт и экспортпараметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Создание нового проекта

Создание проектов программными средствами

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

  2. Добавьте в класс надстройки Connect следующий код.

  3. Запустите проект надстройки и активируйте ее в Диспетчере надстроек.

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

Пример

В следующем примере используется GetProjectTemplate и AddFromTemplate для создания двух новых проектов консольных приложений в решении (Visual Basic и Visual C#).

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)
    createProjectsFromTemplates(_applicationObject)
End Sub

Sub createProjectsFromTemplates(ByVal dte As DTE2)
    Try
        ' Create a solution with two projects in it, based on project 
        ' templates.
        Dim soln As Solution2 = CType(DTE.Solution, _
        Solution2)
        Dim csTemplatePath As String
        Dim vbTemplatePath As String
        Dim csPrjPath As String = _
        "C:\UserFiles\kempb\addins\MyCSProject"
        Dim vbPrjPath As String = _
        "C:\UserFiles\kempb\addins\MyVBProject"

        ' Get the project template path for a C# console project.
        ' Console Application is the template name that appears in the 
        ' right pane, "CSharp" is the Language(vstemplate) as seen in 
        ' the registry.
        csTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "CSharp")
        MsgBox("C# template path: " & csTemplatePath)
        ' Get the project template path for a Visual Basic
        ' console project.
        ' "vbproj: is the DefaultProjectExtension as seen in the 
        ' registry.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "vbproj")
        MsgBox("Visual Basic template path: " & vbTemplatePath)
        ' Create a new C# console project using the template obtained 
        ' above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, _
          "New CSharp Console Project", False)
        ' Create a new Visual Basic console project using the template
        ' obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
          "New Visual Basic Console Project", False)
    Catch ex As System.Exception
        MsgBox("ERROR: " & ex.ToString)
    End Try
End Sub
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    createProjectsFromTemplates(_applicationObject);
}

public void createProjectsFromTemplates(DTE2 dte)
{
    try
    {
        // Create a solution with two projects in it, based on project 
        // templates.
        Solution2 soln = (Solution2)dte.Solution;
        string csTemplatePath;
        string vbTemplatePath;
        string csPrjPath = "C:\\UserFiles\\kempb\\addins\\MyCSProject";
        string vbPrjPath = "C:\\UserFiles\\kempb\\addins\\MyVBProject";
        // Get the project template path for a C# console project.
        // Console Application is the template name that appears in 
        // the right pane. "CSharp" is the Language(vstemplate) as seen 
        // in the registry.
        csTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "CSharp");
        System.Windows.Forms.MessageBox.Show("C# template path: " + 
          csTemplatePath);
        // Get the project template path for a Visual Basic console
        // project.
        // "vbproj: is the DefaultProjectExtension as seen in the 
        // registry.
        vbTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "vbproj");
        System.Windows.Forms.MessageBox.Show("Visual Basic template path: " + 
          vbTemplatePath);
        // Create a new C# console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, "New CSharp 
          Console Project", false);
        // Create a new Visual Basic console project using the template 
        // obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, "New VB Console 
          Project", false);
    }
    catch (System.Exception ex)
    {
        System.Windows.Forms.MessageBox.Show("ERROR: " + ex.Message);
    }
}

См. также

Задачи

Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации

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

Основные понятия

Управление проектами Visual Basic и Visual C#

Управление проектами Visual ++

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

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