Partager via


Modèles de projets génériques et spécifiques au langage

Visual Studio fournit deux types de modèles de projet : un modèle générique et des modèles spécifiques aux langages de programmation.

Modèle de projet générique

Le modèle de projet générique est représenté par les types suivants :

Nom de l'objet

Description

Collection Projects

Représente tous les projets de la solution.

Objet Project

Représente un projet de la solution.

Collection ProjectItems

Représente tous les éléments d'un projet spécifié.

Objet ProjectItem

Représente un élément d'un projet spécifié.

Ces objets vous permettent de manipuler des projets de n'importe quel type de langage dans Visual Studio. À l'aide de ces objets, vous pouvez :

  • enregistrer ou supprimer un projet ;

  • créer un élément de projet pour un projet, en fonction des modèles Visual Studio ;

  • ajouter des éléments de projet à un projet à partir de fichiers existants ;

  • supprimer des éléments de projet d'un projet ;

  • ouvrir, enregistrer et supprimer des éléments de projet d'un projet.

Modèle de projet spécifique au langage

En plus des objets de projet génériques, un jeu d'espaces de noms représente le projet spécifique au langage de programmation utilisé ainsi que des propriétés d'élément de projet. Ces espaces de noms sont les suivants :

Les objets principaux qui représentent des projets de langage sont VSProject et VSProject2. VSProject2 dérive de VSProject, qui dérive de Project. Les éléments de projet sont représentés par des objets VSProjectItem.

Langage de programmation

Espaces de noms

Visual C#

VSLangProj, VSLangProj2 et VSLangProj80.

Visual Basic

VSLangProj, VSLangProj2 et VSLangProj80.

Visual C++

Microsoft.VisualStudio.VCProject et Microsoft.VisualStudio.VCProjectEngine.

Tous les langages de programmation

EnvDTE et EnvDTE80.

Sachant que les objets spécifiques au langage dérivent des objets génériques, ils fonctionnent essentiellement de la même manière que ces derniers. Toutefois, ils vous donnent accès à toute propriété, toute méthode et tout événement supplémentaires inaccessibles par le biais des objets génériques Project et ProjectItem.

Pour plus d'informations sur l'utilisation du modèle de projet spécifique à un langage, consultez Introduction à l'extensibilité de projet.

Modification apportée aux projets Visual Studio.NET 2003 Visual C++

Dans Visual Studio .NET 2003 et versions ultérieures, la gestion spéciale de la collection ProjectItems pour Visual C++ n'est plus nécessaire. En d'autres termes, alors que la collection Visual C++ Projects stockait tous les fichiers projet de Visual C++ dans une liste simple, ces fichiers sont désormais stockés hiérarchiquement, comme dans les autres langages de programmation.

Dans la mesure où cette modification risque d'affecter votre code existant, il existe un moyen d'émuler l'ancien comportement dans le nouveau modèle objet spécifique au projet lorsque vous essayez d'indexer la collection ProjectItems pour déterminer si un fichier se trouve ou non dans le projet. La principale différence est que vous pouvez désormais revenir au modèle objet DTE en appelant .Object sur un objet Visual C++.

[Visual Basic]

Dim proj as VCProject = DTE.ActiveSolutionProjects(1).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object

Voir aussi

Tâches

Comment : créer par programme des projets

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

Autres ressources

Contrôle de la solution et de ses projets