Compartilhar via


Como criar projetos programaticamente

Os suplementos do Visual Studio foram substituídos no Visual Studio 2013. Você deve atualizar seus suplementos para as extensões VSPackage. Para obter mais informações sobre atualização, consulte Perguntas frequentes: convertendo suplementos em extensões VSPackage.

Para criar um projeto, chame GetProjectTemplate e passe os caminhos do modelo retornado a AddFromTemplate.

Os modelos de projeto têm uma extensão de nome de arquivo .vstemplate e são armazenados em arquivos .zip. Para obter o caminho do arquivo .vstemplate (no arquivo .zip), use GetProjectTemplate e passe-o a AddFromTemplate para criar o projeto (e também uma solução, se uma já não estiver aberta). Você pode executar esta operação quantas vezes forem necessárias, e cada projeto será adicionado à solução aberta no momento.

Os modelos de projeto para todos os idiomas podem ser encontrados em Arquivos de Programas\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\Language\.

Também é possível criar seus próprios modelos personalizados de projeto. Para especificar o diretório no qual você armazenará os modelos, clique em Opções no menu Ferramentas. No painel esquerdo da caixa de diálogo Opções, clique em Projetos e Soluções. Digite o caminho dos modelos na caixa Local dos modelos de projeto de usuário do Visual Studio.

Os modelos de projeto personalizados requerem nomes de arquivo únicos que não entrem em conflito com os nomes de arquivo que estão definidos em Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\Language\.

Verifique se você está usando nomes de arquivo longos (em vez de 8dot3). Para obter mais informações, consulte Creating Project and Item Templates.

Dica

As caixas de diálogo e os comandos de menu que você vê podem diferir das descritas no Help dependendo de suas configurações ativas ou de edição.Esses procedimentos foram desenvolvidos com as Configurações Gerais de Desenvolvimento ativas.Para alterar as configurações, clique em Importar e ExportarConfigurações no menu de Ferramentas.Para obter mais informações, consulte Personalizando configurações de desenvolvimento no Visual Studio.

Criando um projeto

Para criar um projeto via programação

  1. Inicie o Visual Studio e crie um projeto de suplemento do Visual Studio.

  2. Para a classe Connect do suplemento, adicione o código de exemplo mostrado mais adiante neste tópico.

  3. Executar o projeto do suplemento e ative-o em Gerenciador de Suplementos.

    Para fazer isso, clique em Gerenciador de Suplementos no menu Ferramentas e selecione o suplemento.

Exemplo

O exemplo a seguir usa GetProjectTemplate e AddFromTemplate para criar dois projetos de console, um do Visual Basic e o outro do Visual C# em uma solução.

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\user1\addins\MyCSProject"
        Dim vbPrjPath As String = _
        "C:\UserFiles\user1\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\\user1\\addins\\MyCSProject";
        string vbPrjPath = "C:\\UserFiles\\user1\\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);
    }
}

Consulte também

Tarefas

Como compilar e executar os exemplos de código do modelo de objeto Automation

Como criar itens de projetos programaticamente

Conceitos

Manipulando projetos do Visual Basic e do Visual C#

Manipulando projetos do Visual C++

Outros recursos

Controlando a solução e os respectivos projetos