Partager via


Comment : effectuer une migration de code qui crée des projets à l'aide de modèles

Mise à jour : novembre 2007

Le processus de création de projets a été mis à jour dans Visual Studio 2005 et la procédure suivante vous indique comment mettre à jour vos applications existantes qui utilisent l'automation pour créer le code par programme.

Dans Visual Studio .NET 2002 et Visual Studio .NET 2003, vous avez créé des projets basés sur des modèles de projets en appelant la méthode AddFromTemplate et en passant le nom et le chemin du fichier modèle, comme .vsz, .cpp, .cs, etc.

Dans Visual Studio 2005, toutefois, les fichiers modèles de projets se trouvent compressés dans des fichiers .zip. Ce processus n'est donc plus valide. Ce nouveau système de modèles de projets est décrit de façon détaillée dans Création de modèles de projet. L'assembly EnvDTE80 fournit de nouveaux types pour accéder à ces nouveaux modèles de projets compressés. Une version mise à jour de AddFromTemplate, ainsi que les nouvelles méthodes, GetProjectTemplate et GetProjectItemTemplate, vous permettent de créer par programme les nouveaux projets et éléments de projets à partir de leurs fichiers modèles compressés.

Le processus dans Visual Studio 2005 consiste à utiliser GetProjectTemplate pour obtenir le chemin d'accès au type de modèle spécifié, que vous passez ensuite à la méthode AddFromTemplate pour créer un nouveau projet. Cela vous permet d'éviter d'utiliser des chemins de modèles codés en dur. La procédure ci-après montre comment effectuer cette opération.

Pour mettre à niveau le nouveau code de projet

  1. Chargez, copiez ou importez le code hérité (legacy) dans Visual Studio.

  2. Remplacez les sections du code définissant les emplacements des modèles du projet et des éléments du projet en tant que chemins d'accès codés en dur par le code (dans la section suivante) qui utilise les méthodes GetProjectTemplate ou GetProjectItemTemplate.

  3. Remplacez les appels de la méthode AddFromTemplate par la méthode AddFromTemplate.

  4. Compilez et exécutez le code.

Exemple

L'exemple suivant illustre la procédure de création par programme des projets et des éléments de projets. Il crée un projet console Visual Basic et y ajoute une page HTML (élément de projet).

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");
}

Voir aussi

Tâches

Comment : compiler et exécuter les exemples de code du modèle objet Automation

Concepts

Contrôle de projets et de solutions

Introduction à l'objet VSProject2