Compartilhar via


Como: Migrar o código que cria projetos usando modelos

O processo de criação de projetos tiver sido atualizado em Visual Studio 2005 e o procedimento a seguir mostra como atualizar seus aplicativos existentes que usam automação criar código programaticamente.

No Visual Studio .NET 2002 e Visual Studio .NET 2003, você criou projetos baseados em modelos de projeto, chamando o AddFromTemplate método e passar o nome e caminho do modelo de arquivos, sistema autônomo .vsz, ou .cpp ou. cs e assim por diante.

In Visual Studio 2005, no entanto, arquivos de modelo de projeto são em arquivos compactados .zip, portanto, isso não processar funciona. Esse novo sistema de modelo de projeto é descrito com mais detalhes em Criando modelos de projeto. The EnvDTE80 assembly fornece novos tipos para acessar esses novos modelos de projeto compactado. Uma versão atualizada do AddFromTemplate Assim sistema autônomo sistema autônomo novos métodos GetProjectTemplate e GetProjectItemTemplate, permitem criar por programação novos projetos e itens de projeto com base em seus arquivos de modelo compactado.

O processo de Visual Studio 2005 é usar GetProjectTemplate Para obter o caminho para o tipo de modelo especificado, o que você passar para o AddFromTemplate método para criar um novo projeto. Isso permite que você evite usar caminhos de modelo embutido em código.O procedimento a seguir ilustra como fazer isso.

Para atualizar o novo código do projeto

  1. Carregar, copie ou importe código herdado para Visual Studio.

  2. Substituir sistema autônomo seções do código que conjunto locais dos modelos de projeto e item de projeto sistema autônomo caminhos codificados com o código (na seção a seguir) que usa o GetProjectTemplate ou GetProjectItemTemplate métodos.

  3. Substitua o AddFromTemplate método chama-se com o AddFromTemplate método.

  4. Compilar e executar o código.

Exemplo

O exemplo a seguir demonstra o procedimento de criação através de programação de projetos e itens de projeto.Ele cria um Visual Basic projeto de console e adiciona uma página HTML (item de projeto) a ela.

Sub CreatePrjAndPrjItemExample()
    ' Get a reference to the Solution2 object and create
    ' the path variables.
    Dim soln As Solution2 = CType(DTE.Solution, Solution2)
    Dim vbPrjTemplatePath As String
    Dim vbItemTemplatePath As String
    Dim vbPrjPath As String = "C:\MyNewVBProject"
    Dim prjName As String = "New Visual Basic Console Project"
    Dim prj As Project
    Dim prjItems As ProjectItems

    MsgBox("Starting...")
    ' Get the project template path for a Visual Basic console project.
    vbPrjTemplatePath = _
    soln.GetProjectTemplate("ConsoleApplication.zip", _
     "VisualBasic")
    ' Create a new Visual Basic Console project by using the
    '  template obtained above.
    soln.AddFromTemplate(vbPrjTemplatePath, vbPrjPath, prjName, False)
    MsgBox("Done.")

    ' Reference the project and its items.
    prj = soln.Projects.Item(1)
    prjItems = prj.ProjectItems
    ' Get the path to the HTML Page template and add it to the project.
    vbItemTemplatePath = soln.GetProjectItemTemplate("HTMLPage.zip", _
    "VisualBasic")
    prjItems.AddFromTemplate(vbItemTemplatePath, "A New HTML Page")
End Sub
public void CreatePrjAndPrjItemExample(DTE2 dte)
{
    // Before running, set a reference to
    // System.Windows.Forms.
    // =============================
    // Get a reference to the Solution2 object and create
    // the path variables.
    Solution2 soln = (Solution2) dte.Solution;
    string vbPrjTemplatePath;
    string vbItemTemplatePath;
    string vbPrjPath = "C:\\MyNewVBProject";
    string prjName = "New Visual Basic Console Project";
    Project prj;
    ProjectItems prjItems;
    System.Windows.Forms.MessageBox.Show("Starting...");
    // Get the project template path for a Visual Basic console project.
    vbPrjTemplatePath = soln.GetProjectTemplate _
    ("ConsoleApplication.zip", VisualBasic");
    // Create a new Visual Basic Console project by using 
    // the template obtained above.
    soln.AddFromTemplate(vbPrjTemplatePath, vbPrjPath, prjName, false);
    System.Windows.Forms.MessageBox.Show("Done.");
     // Reference the project and its items.
    prj = soln.Projects.Item(1);
    prjItems = prj.ProjectItems;
    // Get the path to the HTML Page template and add it to the 
    // project.
    vbItemTemplatePath = soln.GetProjectItemTemplate _
    ("HTMLPage.zip", "VisualBasic");
    prjItems.AddFromTemplate(vbItemTemplatePath, "A New HTML Page");
}

Consulte também

Tarefas

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

Conceitos

Controlar projetos e soluções

Introdução ao objeto VSProject2