Comment : créer des éléments de projet par programme

Les compléments Visual Studio sont déconseillés dans Visual Studio 2013. Vous devriez mettre vos compléments à niveau vers des extensions VSPackage. Pour plus d'informations sur les mises à jour, consultez FAQ : conversion de compléments en extensions VSPackage.

Pour créer des éléments de projet par programmation, commencez par appeler GetProjectItemTemplate, puis passez les chemins d'accès des modèles retournés à AddFromTemplate. Pour plus d'informations, consultez Visual Studio Templates.

La méthode GetProjectItemTemplate retourne le modèle à partir du fichier .zip approprié pour une utilisation avec la méthode AddFromTemplate. Les modèles d'élément de projet destinés à tous les langages sont accessibles dans Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\Language\.

Vous pouvez également créer vos propres modèles d'éléments de projet personnalisés. Pour spécifier le répertoire dans lequel vous stockerez vos modèles, cliquez sur Options dans le menu Outils. Dans le volet gauche de la boîte de dialogue Options, cliquez sur Projets et solutions. Tapez le chemin d'accès de vos modèles dans la zone Emplacement des modèles d'élément pour l'utilisateur de Visual Studio.

Les modèles personnalisés requièrent des noms de fichiers uniques qui n'entrent pas en conflit avec les noms de fichiers définis dans : Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\Language\.

Assurez-vous que vous utilisez des noms de fichiers longs (par opposition au modèle 8.3). Pour plus d'informations, consultez Creating Project and Item Templates.

Pour supprimer des projets de la solution, utilisez Remove.

L'exemple suivant illustre la méthode générique de création d'éléments de projet. Les rubriques répertoriées à la section Voir aussi montrent comment utiliser les modèles propres au langage.

Notes

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes.Ces éléments dépendent de l'édition de Visual Studio dont vous disposez et des paramètres que vous utilisez.Pour plus d'informations, consultez Paramètres Visual Studio.

Ajout d'éléments aux projets

Pour ajouter des éléments à un projet par programmation

  1. Démarrez Visual Studio et créez un projet de complément Visual Studio.

  2. Ajoutez le code spécifié ultérieurement dans cette rubrique à la classe Connect du complément.

  3. Exécutez le projet de complément et activez-le dans le Gestionnaire de compléments en cliquant dans le menu Outils sur Gestionnaire de compléments, puis en activant la case à cocher située en regard du complément.

Exemple

L'exemple suivant montre comment ajouter par programmation des éléments à un projet Visual Basic existant.

' Before running the following code, be sure that a Visual Basic 
' project is open in Visual Studio.
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)
    createProjectItem(_applicationObject)
End Sub

Sub createProjectItem(ByVal dte As DTE2)
    ' Adds a new Class to an existing Visual Basic project.
    Dim soln As Solution2
    Dim prj As Project
    soln = CType(_applicationObject.Solution, Solution2)
    Dim prjItem As ProjectItem
    Dim itemPath As String

    ' Point to the first project (the Visual Basic project).
    prj = soln.Projects.Item(1)
    ' Retrieve the path to the Class template.
    itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj")
    ' Create a new project item based on the template, in this case,
    ' a Class.
    prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass")
End Sub
// Before running the following code, be sure that a Visual Basic 
// project is open in Visual Studio.
public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst, ref
 System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;

    // Pass the applicationObject member variable to the code example.
    createProjectItem(_applicationObject);
}
public void createProjectItem(DTE2 dte)
{
    //Adds a new Class to an existing Visual Basic project.
    Solution2 soln;
    Project prj;
    soln = (Solution2)_applicationObject.Solution;
    ProjectItem prjItem;
    String itemPath;
    // Point to the first project (the Visual Basic project).
    prj = soln.Projects.Item(1);
    // Retrieve the path to the class template.
    itemPath = soln.GetProjectItemTemplate("Class.zip", "vbproj");
    //Create a new project item based on the template, in this
    // case, a Class.
    prjItem = prj.ProjectItems.AddFromTemplate(itemPath, "MyNewClass");
}

Compilation du code

Pour compiler ce code, créez un projet de complément Visual Studio et remplacez le code de la classe Connect.cs ou Connect.vb par le code de l'exemple. Avant d'exécuter le complément, ouvrez un projet Visual Basic dans l'IDE de Visual Studio. Pour plus d'informations sur l'exécution d'un complément, consultez Comment : contrôler des compléments avec le Gestionnaire de compléments.

Programmation fiable

Lorsque vous utilisez des noms d'éléments de projet comme paramètre pour Solution.Projects.Item, vous devez utiliser le nom unique du projet. Le nom unique est un chemin d'accès relatif depuis le répertoire qui contient le fichier solution (.sln) jusqu'au fichier projet.

Par exemple, considérez la structure solution/projet suivante :

SomeSolution.sln

     WinApp1

          WinApp1.VBProj

Le nom unique pour le projet serait "WinApp1/WinApp1.VBProj" et l'appel à la méthode Item serait Solution.Projects.Item("WinApp1/WinApp1.VBProj").

Voir aussi

Tâches

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

Comment : créer par programme des projets

Concepts

Manipulation des projets Visual Basic et Visual C#

Manipulation des projets Visual C++

Introduction aux modèles Visual Studio

Autres ressources

Contrôle de la solution et de ses projets