Compartilhar via


Como: Criar projetos programaticamente

Para criar projetos primeiro chamar GetProjectTemplate, e passar os caminhos de modelo retornado AddFromTemplate.

Modelos com uma extensão .vstemplate de projeto e são armazenados em arquivos .zip.Para obter o caminho para o arquivo .vstemplate (dentro do arquivo .zip), você usar GetProjectTemplate, que você passar para AddFromTemplate Para criar o projeto (bem sistema autônomo uma solução, se uma não estiver já em aberto). 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 <unidade>: \programa Files\Microsoft visual Studio 8\Common7\IDE\ProjectTemplates\linguagem.

Você também pode criar seus próprios modelos de projeto personalizados.Para especificar o diretório no qual você armazenará seus modelos, clicar Opções on the Ferramentas menu.No painel esquerdo do Opções diálogo, clicar Projetos e soluções.Digite o caminho para os modelos no Local dos modelos de projeto do Visual Studio usuário box.Como alternativa, você pode aceitar o localização padrão.

Modelos de projeto personalizados requerem nomes de arquivo exclusivo que não entrem em conflito com os nomes de arquivo definidos em: <unidade>: \programa Files\Microsoft visual Studio 8\Common7\IDE\ProjectTemplates\linguagem.

Certifique-se de usar nomes extensos de arquivos (em oposição ao que esteja em formato 8.3).Para obter mais informações, consulte Criando modelos de projeto e de item.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o Geral Development Settings ativo.Para alterar as configurações, escolher Import and ExportSettings on the Tools menu.Para obter mais informações, consulte Configurações do Visual Studio.

Criando um novo projeto

Criar programaticamente um projeto

  1. Iniciar o Visual Studio e criar um novo Visual Studio projeto suplemento.

  2. Adicione o código abaixo para Connect classe.

  3. Executar projeto add-in e ativar-lo a Gerenciador de suplemento.

    Para fazer isso, clicar Gerenciador de suplemento on the Ferramentas menu e marque a caixa ao lado do suplemento para ativá-lo.

Exemplo

O exemplo a seguir utiliza GetProjectTemplate e AddFromTemplate Para criar novo console dois projetos, um Visual Basic e o Outros 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\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);
    }
}

Consulte também

Tarefas

Como: Compilar e executar os exemplos de códigos automação objeto modelo

Como: Programaticamente, criar itens de projeto

Conceitos

Manipulação de Visual Basic e Visual translation from VPE for Csharp Projects

Manipulação de projetos do Visual C++

Outros recursos

Controlar a solução e seus projetos