Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais
Nous recommandons d’utiliser Visual Studio 2017

Introduction à l'extensibilité de projet

Le modèle d'objet est disponible par le simple ajout de références aux assemblys VSLangProj dans votre projet : assemblys VSLangProj.dll, VSLangProj2.dll, VSLangProj80.dll, VSLangProj90a.dll et VSLangProj100.dll. Pour plus d'informations, consultez Comment : ajouter ou supprimer des références à l'aide de la boîte de dialogue Ajouter une référence. Cela signifie que le modèle objet est disponible pour les compléments et tout type de projet qui doit étendre ou automatiser l'IDE. Les exemples des rubriques sont écrits dans les langages Visual Basic et Visual C#. Pour plus d'informations sur l'exécution des exemples, consultez Comment : compiler et exécuter les exemples de code du modèle objet Automation. Les compléments peuvent être écrits dans tout langage hébergé Visual Studio, tel que Visual Basic, Visual C# et Visual C++. Les rubriques de référence des membres VSLangProj, VSLangProj2VSLangProj80, VslangProj90 et VslangProj100 comprennent la syntaxe relative à chacun de ces langages. Pour une description des types de projets d'automation et des capacités d'automation, consultez Création de compléments et d'Assistants.

Ces espaces de noms contiennent toutes les classes, interfaces et énumérations destinées aux projets Visual Basic et Visual C#. Pour obtenir la liste complète des objets présents dans l'espace de noms, consultez Modèle objet d'extensibilité Visual Basic et Visual C# pour les projets.

Si vous créez un projet qui référence un ou plusieurs des assemblys VSLangProj et l'assembly EnvDTE, vous obtenez parfois l'erreur suivante au moment de l'exécution :

« Exception non gérée : System.IO.FileNotFoundException: Erreur lors du chargement du fichier 'EnvDTE, Version=7 .0.3300.0 »

Cette erreur est liée à un conflit de résolution de type à l'exécution. En d'autres termes, la version de EnvDTE incluse dans Visual Studio 2005 est 8.0.xx, mais la référence de configuration du projet recherche une version antérieure de cet assembly, à savoir la version 7.0.xx. Pour corriger ce problème, vous devez ajouter une redirection de liaison pour la version la plus récente de EnvDTE au fichier de configuration (.config) de votre projet. Ainsi, Visual Studio pourra charger la version la plus récente de EnvDTE et empêcher l'erreur de se produire.

Pour ce faire, ajoutez un « Fichier de configuration de l'application » à votre projet, puis remplacez son contenu par les éléments suivants :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-
        com:asm.v1" appliesTo="v2.0.50318">
            <dependentAssembly>
                <assemblyIdentity name="EnvDTE" publicKeyToken=
                "b03f5f7f11d50a3a"/>
                <bindingRedirect oldVersion="7.0.3300.0" 
                newVersion="8.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Cet objet donne accès à d'autres objets du modèle d'extensibilité. L'objet DTE est l'objet de niveau supérieur dans le modèle Automation Visual Studio. Dans le modèle d'extensibilité générale, un projet est représenté par l'objet Project générique. L'objet Project possède une propriété Object. Ce type de propriété est déterminé au moment de l'exécution par le langage du projet. Dans un projet Visual Basic ou Visual C#, la propriété Object retourne un objet de type VSProject2. Dans la mesure où le type de la propriété Object est Object, vous devez effectuer un cast de la référence en type VSProject2. Une fois que avez référencé l'élément VSProject2, vous pouvez manipuler les propriétés, les configurations, les fichiers, les dossiers, les instructions Imports et les références du projet.

Pour plus d'informations, consultez Introduction à l'objet VSProject2.

La propriété References, contenue par l'objet VSProject2, renferme une collection d'objets Reference3. L'objet Reference3 représente une référence de projet ; il s'agit principalement d'un objet en lecture seule qui prend en charge une méthode Remove. L'objet References assure la prise en charge de l'ajout de références (COM, assemblys .NET, ActiveX et autres projets) et du déclenchement d'événements (ajout, suppression et modification de références).

L'objet References ne contient pas les références Web d'un projet. Les références Web d'un projet peuvent être récupérées au moyen de la propriété ProjectItems de WebReferencesFolder.

Pour plus d'informations et des exemples de code, consultez Reference et l'objet Reference3, la collection References et les propriétés References et WebReferencesFolder.

La propriété Imports contenue par l'objet VSProject2 gère une collection d'instructions Imports qui s'appliquent à l'intégralité d'un projet Visual Basic. Si une instruction Imports est ajoutée à cette collection, l'instruction Imports correspondante (par exemple, Imports VSLangProj) ne doit pas être ajoutée au fichier de code. Cet objet prend en charge l'ajout et la suppression d'instructions Imports ainsi que le déclenchement d'événements en réponse à l'ajout et à la suppression d'instructions. Il n'y a aucun équivalent dans un projet Visual C#, et la propriété VSProject2.Imports retourne Nothing ou null lorsqu'elle est appliquée à un projet Visual C#. Pour plus d'informations, consultez Imports.

L'objet VSProjectItem est l'équivalent de l'objet VSProject2 pour les éléments de projet. Dans le modèle d'extensibilité général, l'objet générique ProjectItem représente un élément de projet. La propriété Object est de type Object. Dans un projet Visual Basic ou Visual C#, le type de cette propriété est VSProjectItem. L'objet VSProjectItem comprend des propriétés liées au projet et à l'élément de projet parents, ainsi qu'une méthode qui force l'exécution d'un outil personnalisé sur cet élément. L'objet BuildManager gère la sortie de l'outil personnalisé. Pour plus d'informations, consultez la méthode RunCustomTool, Introduction à l'objet BuildManager, l'objet VSProjectItem et l'objet BuildManager.

Le modèle d'extensibilité générale possède une propriété Properties dans trois objets :

  • Objet Project   Les propriétés de cet objet sont identiques aux propriétés figurant sous l'onglet Propriétés communes de la boîte de dialogue Pages de propriétés du projet dans l'environnement de développement intégré.

  • Objet Configuration   Les propriétés de cet objet sont identiques aux propriétés figurant sous l'onglet Propriétés de configuration de la boîte de dialogue Pages de propriétés du projet dans l'environnement de développement intégré.

  • Objet ProjectItem   Les propriétés de cet objet sont identiques aux propriétés figurant dans la fenêtre Propriétés lorsqu'un élément de projet est sélectionné dans l'Explorateur de solutions.

  • Dans les trois cas, la propriété Properties est une collection d'objets de type Property. Il est possible d'obtenir un objet Property de la collection en spécifiant l'index de base 1 de la propriété ou son nom. Le contenu de la collection dépend du langage. Dans le cas des éléments de projet, le contenu varie également selon que l'élément est un fichier ou un dossier.

Afficher: