Partager via


Ajouter ou supprimer des références à l’aide du Gestionnaire de références

Vous pouvez utiliser la boîte de dialogue Gestionnaire de références pour ajouter et gérer des références aux composants que vous, Microsoft ou une autre entreprise avez développé. Si vous développez une application Windows universelle, votre projet référence automatiquement toutes les DLL correctes du SDK Windows. Lorsque vous créez un projet .NET, votre projet référence automatiquement les composants dont il a besoin, tels que le Kit de développement logiciel (SDK) .NET, mais vous devez ajouter des références lorsque vous ajoutez des fonctionnalités. Certaines API .NET sont exposées dans les composants que vous devez ajouter manuellement. Les références aux composants COM ou aux composants personnalisés doivent être ajoutées manuellement.

Si un package NuGet est disponible pour la bibliothèque que vous référencez, utilisez le Gestionnaire de package NuGet. Consultez Installer et utiliser un package NuGet.

Boîte de dialogue Gestionnaire de références

La boîte de dialogue Gestionnaire de références affiche différentes catégories sur le côté gauche, selon le type de projet :

  • Assemblys, avec sous-groupes Framework et Extensions (.NET Framework uniquement)

  • COM répertorie tous les composants COM disponibles pour référencer

  • Projets

  • Projets partagés

  • Windows, avec sous-groupes Core et Extensions . Vous pouvez explorer les références dans le SDK Windows ou les kits SDK d’extension à l’aide de l’Explorateur d’objets.

  • Parcourir, avec sous-groupe Récent

    Remarque

    Vous pourriez ne pas voir Parcourir dans la boîte de dialogue Gestionnaire de références si vous développez des projets C++.

Ajouter une référence

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud Références ou Dépendances, puis choisissez Ajouter une référencede projet, Ajouter une référence de projet partagée ou ajouter une référence COM dans le menu contextuel. (Vous pouvez cliquer avec le bouton droit sur le nœud du projet et sélectionner Ajouter dans le menu volant pour choisir parmi ces options également.)

    Capture d’écran de la boîte de dialogue Ajouter une référence dans le menu contextuel dans l’Explorateur de solutions.

    Le Gestionnaire de références s’ouvre et répertorie les références disponibles par groupe.

    Capture d’écran de la boîte de dialogue Gestionnaire de références dans Visual Studio.

  2. Sélectionnez une référence à ajouter, puis sélectionnez OK.

    Remarque

    Si vous ne voyez pas la référence que vous recherchez , sélectionnez Parcourir pour localiser la référence. (Si vous développez des projets C++, il se peut que vous ne voyiez pas d’option de navigation.)

Onglet Assemblys (.NET Framework uniquement)

Remarque

L’onglet Assemblys n’est pas disponible pour les projets qui ciblent .NET Core ou .NET 5 et versions ultérieures. Sélectionnez Parcourir pour rechercher un assembly dans le système de fichiers et l’ajouter en tant que référence. Pour afficher les assemblys référencés dans un projet, développez le nœud Dépendances dans le projet. À partir du nœud Dépendances , vous pouvez cliquer avec le bouton droit pour ajouter ou supprimer des références de projet, afficher ou supprimer des assemblys dans le nœud Assemblys , ou ouvrir le navigateur de package NuGet pour gérer les packages NuGet. Consultez Installer et gérer des packages dans Visual Studio à l’aide du Gestionnaire de package NuGet dans la documentation NuGet.

Pour les projets .NET Framework, l’onglet Assemblys répertorie tous les assemblys .NET disponibles pour référencer. L’onglet Assemblys ne répertorie pas d’assemblys du Global Assembly Cache (GAC), car les assemblys du GAC font partie de l’environnement d’exécution. Si vous déployez ou copiez une application qui contient une référence à un assembly inscrit dans le GAC, l’assembly n’est pas déployé ou copié avec l’application, quel que soit le paramètre Copier local . Pour plus d’informations, consultez Gérer les références dans un projet.

Lorsque vous ajoutez manuellement une référence à l’un des espaces de noms EnvDTE (EnvDTE, , EnvDTE80, EnvDTE90EnvDTE90aou EnvDTE100), définissez la propriété Embed Interop Types de la référence sur False dans la fenêtre Propriétés. La définition de cette propriété sur True peut entraîner des problèmes de génération en raison de certaines propriétés EnvDTE qui ne peuvent pas être incorporées.

Tous les projets de bureau contiennent une référence implicite à mscorlib. Les projets Visual Basic contiennent une référence implicite à Microsoft.VisualBasic. Tous les projets contiennent une référence implicite à System.Core, même s’ils sont supprimés de la liste des références.

L’onglet Assemblys se compose de deux sous-onglets :

  1. Framework répertorie tous les assemblys qui constituent l’infrastructure ciblée.

    Pour les projets qui ne ciblent pas .NET Core ou la plateforme Windows universelle, l’onglet Framework énumère les assemblys du framework ciblé. L’utilisateur doit ajouter toutes les références requises par l’application.

    Les projets Windows universels contiennent des références à tous les assemblys du framework ciblé par défaut. Dans les projets gérés , un nœud en lecture seule sous le dossier Références dans l’Explorateur de solutions indique la référence à l’ensemble de l’infrastructure. En conséquence, l’onglet Framework n’énumère pas les assemblys de l’infrastructure et affiche plutôt le message suivant : « Tous les assemblys de framework sont déjà référencés. Utilisez l’Explorateur d’objets pour explorer les références dans le Framework. »

  2. Les extensions répertorient tous les assemblages que les fournisseurs externes de composants et de contrôles ont développé pour étendre l’infrastructure ciblée. En fonction de l’objectif de l’application utilisateur, il peut avoir besoin de ces assemblys.

    Les extensions sont remplies en énumérant les assemblys inscrits aux emplacements suivants :

    Machine 32 bits :

    • HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    Machine 64 bits :

    • HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    Et les versions antérieures de [Target Framework Identifier]

    Par exemple, si un projet cible .NET Framework 4 sur une machine 32 bits, les extensions énumèrent les assemblys inscrits sous \Microsoft.NETFramework\v4.0\AssemblyFoldersEx, \Microsoft.NETFramework\v3.5\AssemblyFoldersEx, \Microsoft.NETFramework\v3.0\AssemblyFoldersEx et \Microsoft.NETFramework\v2.0\AssemblyFoldersEx.

Certains composants de la liste peuvent ne pas être affichés, en fonction de la version de framework de votre projet. Cette situation peut se produire dans les conditions suivantes :

  • Un composant qui utilise une version récente du framework n’est pas compatible avec un projet qui cible une version antérieure.

    Pour plus d’informations sur la modification de la version du framework cible pour un projet, consultez la vue d’ensemble du ciblage du framework.

  • Un composant qui utilise une version antérieure du .NET Framework n’est pas compatible avec un projet qui cible un .NET Framework plus récent.

Pour plus d’informations sur la compatibilité des versions de .NET Framework, consultez Compatibilité des versions.

Vous devez éviter d’ajouter des références de fichier aux sorties d’un autre projet dans la même solution, car cela peut entraîner des erreurs de compilation. Utilisez plutôt l’onglet Projets de la boîte de dialogue Ajouter une référence pour créer des références de projet à projet. Cette pratique facilite le développement d’équipe en activant une meilleure gestion des bibliothèques de classes que vous créez dans vos projets. Pour plus d’informations, consultez Résoudre les problèmes de références rompues.

Remarque

Une référence de fichier au lieu d’une référence de projet est créée si la version cible d’un projet est .NET Framework 4.5 ou version ultérieure, et que la version cible de l’autre projet est .NET Framework 2, 3, 3.5 ou 4.0. Pour plus d’informations sur .NET, .NET Framework et .NET Core, consultez Présentation de .NET (et .NET Core).

Pour afficher un assembly dans la boîte de dialogue Ajouter une référence

  • Déplacez ou copiez l’assembly à l’un des emplacements suivants :

    • Répertoire du projet actuel. (Vous pouvez trouver ces assemblages à l’aide de l’onglet Parcourir.)

    • Autres répertoires de projet dans la même solution. (Vous pouvez trouver ces assemblys à l’aide de l’onglet Projets .)

    ou

  • Définissez une clé de Registre qui spécifie l’emplacement des assemblies à répertorier :

    Pour un système d’exploitation 32 bits, ajoutez l’une des clés de Registre suivantes.

    • [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    Pour un système d’exploitation 64 bits, ajoutez l’une des clés de registre suivantes dans une ruche de registre 32 bits.

    • [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    <VersionMinimum> est la version de framework la plus basse qui s’applique. Si <VersionMinimum> est v3.0, les dossiers spécifiés dans AssemblyFoldersEx s’appliquent aux projets qui ciblent .NET Framework 3.0 et versions ultérieures.

    <AssemblyLocation> est le répertoire des assemblys que vous souhaitez afficher dans la boîte de dialogue Ajouter une référence , par exemple , C :\MyAssemblies.

    La création de la clé de Registre sous le HKEY_LOCAL_MACHINE nœud permet à tous les utilisateurs d’afficher les assemblys à l’emplacement spécifié dans la boîte de dialogue Ajouter une référence . La création de la clé de Registre sous le HKEY_CURRENT_USER nœud affecte uniquement le paramètre de l’utilisateur actuel.

    Ouvrez à nouveau la boîte de dialogue Ajouter une référence . Les assemblys doivent apparaître sous l’onglet .NET . Si ce n’est pas le cas, vérifiez que les assemblys se trouvent dans le répertoire AssemblyLocation spécifié, redémarrez Visual Studio et réessayez.

Onglet Projets

L’onglet Projets répertorie tous les projets compatibles dans la solution actuelle, dans le sous-onglet Solution .

Un projet peut référencer un autre projet qui cible une autre version du framework. Par exemple, vous pouvez créer un projet qui cible .NET 8.0, mais qui fait référence à un assembly créé pour .NET 6.0. Toutefois, le projet .NET 6.0 ne peut pas référencer un projet .NET Framework 8.0. Pour plus d’informations, consultez Vue d’ensemble du ciblage de l’infrastructure.

Onglet Projets partagés

Ajoutez une référence à un projet partagé sous l’onglet Projets partagés de la boîte de dialogue Gestionnaire de références. Les projets partagés vous permettent d’écrire du code commun référencé par de nombreux projets d’application différents.

Onglet Windows universel

L’onglet Windows universel répertorie tous les kits SDK spécifiques aux plateformes sur lesquelles s’exécutent les systèmes d’exploitation Windows. Cet onglet comporte deux sous-groupes : Core et Extensions.

Sous-groupe principal

Par défaut, les projets d’application Windows universelle font référence au Kit de développement logiciel (SDK) Windows universel. En conséquence, le sous-groupe Principal du Gestionnaire de références n’énumère pas les assemblys du Kit de développement logiciel (SDK) Windows universel.

Sous-groupe d’extensions

Les extensions répertorient les sdk utilisateur qui étendent la plateforme Windows ciblée.

Un Kit de développement logiciel (SDK) est une collection de fichiers que Visual Studio traite comme un composant unique. Sous l’onglet Extensions , les kits SDK qui s’appliquent au projet à partir duquel la boîte de dialogue Gestionnaire de références a été appelée sont répertoriées sous forme d’entrées uniques. Lorsqu’il est ajouté à un projet, tout le contenu du Kit de développement logiciel (SDK) est consommé par Visual Studio, de sorte que l’utilisateur n’a pas besoin d’effectuer d’autres actions pour tirer parti du contenu du SDK dans IntelliSense, boîte à outils, concepteurs, Explorateur d’objets, build, déploiement, débogage et empaquetage.

Pour plus d’informations sur l’affichage de votre Kit de développement logiciel (SDK) dans l’onglet Extensions , consultez Créer un kit de développement logiciel.

Remarque

Si un projet fait référence à un SDK qui dépend d’un autre SDK, Visual Studio ne consomme pas le deuxième SDK, sauf si vous ajoutez manuellement une référence au deuxième SDK. Lorsque vous choisissez un SDK sous l’onglet Extensions , la boîte de dialogue Gestionnaire de références vous aide à identifier les dépendances du SDK en répertoriant les dépendances dans le volet d’informations.

Si un type de projet ne prend pas en charge les extensions, cet onglet n’apparaît pas dans la boîte de dialogue Gestionnaire de références.

Onglet COM

L’onglet COM répertorie tous les composants COM disponibles pour le référencement. Si vous souhaitez ajouter une référence à une DLL COM inscrite qui contient un manifeste interne, annulez tout d’abord l’inscription de la DLL. Sinon, Visual Studio ajoute la référence d’assembly en tant que contrôle ActiveX au lieu d’une DLL native.

Si un type de projet ne prend pas en charge COM, l’onglet n’apparaît pas dans la boîte de dialogue Gestionnaire de références.

Parcourir

Vous pouvez utiliser le bouton Parcourir pour rechercher un composant ou un assembly dans le système de fichiers.

Un projet peut référencer un composant qui cible une autre version du framework. Par exemple, vous pouvez créer une application qui cible .NET Framework 4.7.2, mais qui fait référence à un composant qui cible .NET Framework 4. Pour plus d’informations, consultez Vue d’ensemble du ciblage de l’infrastructure.

Évitez d’ajouter des références de fichiers aux sorties d’un autre projet dans la même solution, car cette tactique peut entraîner des erreurs de compilation. Utilisez plutôt l’onglet Solution de la boîte de dialogue Gestionnaire de références pour créer des références de projet à projet. Cela facilite le développement d’équipe en activant une meilleure gestion des bibliothèques de classes que vous créez dans vos projets. Pour plus d’informations, consultez Résoudre les problèmes de références rompues.

Vous ne pouvez pas accéder à un Kit de développement logiciel (SDK) et l’ajouter à votre projet. Vous pouvez uniquement accéder à un fichier (par exemple, un assembly ou .winmd) et l’ajouter à votre projet.

Lorsque vous effectuez une référence à un fichier WinMD, la disposition attendue est que les fichiers <FileName>.winmd, <FileName>.dll et <FileName>.pri soient tous placés les uns à côté des autres. Si vous référencez un WinMD dans les scénarios suivants, un ensemble incomplet de fichiers est copié dans le répertoire de sortie du projet et, par conséquent, les échecs de génération et d’exécution se produisent.

  • Composant natif : un projet natif crée un WinMD pour chaque ensemble disjoint d’espaces de noms et une DLL qui se compose de l’implémentation. Les WinMD ont des noms disparates. Lors du référencement de ce fichier de composant natif, MSBuild ne reconnaît pas que les WinMD dont les noms sont différents constituent un seul composant. Par conséquent, seuls les fichiers nommés identiquement <FileName>.dll et <FileName>.winmd sont copiés, et des erreurs d'exécution surviennent. Pour contourner ce problème, créez un Kit de développement logiciel (SDK) d’extension. Pour plus d’informations, consultez Créer un kit de développement logiciel.

  • Contrôles de consommation : au minimum, un contrôle XAML se compose d’un <FileName>.winmd, <FileName>.dll, <FileName>.pri, <XamlName>.xaml, et d’une <ImageName>.jpg. Lorsque le projet est généré, les fichiers de ressources associés à la référence de fichier ne sont pas copiés dans le répertoire de sortie du projet, et seuls <FileName.winmd>, <FileName>.dll et <FileName.pri> sont copiés. Une erreur de génération est enregistrée qui indique que les ressources <XamlName.xaml et ImageName><.jpgsont manquantes.> Pour réussir, copiez manuellement ces fichiers de ressources dans le répertoire de sortie du projet pour la génération et le débogage/runtime. Pour contourner ce problème, créez un Kit de développement logiciel (SDK) d’extension en suivant les étapes décrites dans Créer un Kit de développement logiciel ou modifiez le fichier projet pour ajouter la propriété suivante :

    <PropertyGroup>
       <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    

    Remarque

    Si vous ajoutez la propriété, la compilation pourrait s'exécuter plus lentement.

Récent

Assemblies, COM, Windows et Parcourir supporte chacun un onglet Récent qui affiche la liste des composants récemment intégrés aux projets.

La barre de recherche de la boîte de dialogue du Gestionnaire de références agit sur l’onglet actif. Par exemple, si vous tapez « Système » dans la barre de recherche alors que l’onglet Solution est actif, la recherche ne retourne aucun résultat, sauf si la solution se compose d’un nom de projet qui contient « Système ».

Supprimer une référence

Vous pouvez supprimer des références inutilisées pour les projets de style sdk dans Visual Studio à l’aide de l’élément de menu Supprimer les références inutilisées .

Capture d’écran de l’option Supprimer les références inutilisées à partir du menu contextuel dans l’Explorateur de solutions.

Pour plus d’informations, consultez Supprimer les références inutilisées.