Share via


Comment : 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 développés par vous, par Microsoft ou par une autre société.Si vous développez une application Windows Store, votre projet référence automatiquement tous les Windows 8 Kit de développement logiciel (SDK) et .NET Framework.Si vous développez un autre type de projet, vous devez ajouter ces références au projet manuellement.

Mise en gardeAttention

Vous pouvez ajouter des références dans d'autres types de projets à l'aide de la boîte de dialogue Ajouter une référence.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.

Ajout et suppression d'une référence

Pour ajouter une référence dans un projet C# ou Visual Basic

  1. Dans la barre de menus, choisissez Fichier, Ouvrir.

  2. Accédez à votre solution ou à votre projet.

  3. Dans l'Explorateur de solutions, ouvrez le menu contextuel du nœud de projet, puis choisissez Ajouter une référence.

  4. Spécifiez les références à ajouter, puis choisissez le bouton OK.

Pour supprimer une référence, ouvrez le menu contextuel, puis choisissez Supprimer.

Pour ajouter une référence dans un projet C++

  1. Dans la barre de menus, choisissez Fichier, Ouvrir.

  2. Accédez à votre solution ou à votre projet.

  3. Dans l'Explorateur de solutions, ouvrez le menu contextuel du nœud de projet, puis choisissez Références.

  4. Dans la boîte de dialogue Pages de propriétés, choisissez le bouton Ajouter une nouvelle référence.

  5. Dans la boîte de dialogue Ajouter une référence, spécifiez les références à ajouter, puis choisissez le bouton OK.

Pour supprimer une référence, ouvrez le menu contextuel, puis choisissez Supprimer.

Le Gestionnaire de références s'ouvre et affiche la liste des références disponibles par groupe.Le type de projet détermine quel groupe parmi les suivants s'affiche :

  • Assemblys, avec les sous-groupes Framework et Extensions.

  • Solution, avec le sous-groupe Projets.

  • Windows, avec les sous-groupes Principal et Extensions.Vous pouvez explorer les références dans le Kit de développement logiciel Windows ou le Kit de développement logiciel de l'extension à l'aide de l'Explorateur d'objets.

  • Parcourir, avec le sous-groupe Récent.

Onglet Assemblys

L'onglet Assemblys répertorie tous les assemblys .NET Framework qui sont disponibles pour le référencement.L'onglet Assemblys ne répertorie par les assemblys du Global Assembly Cache (GAC) car ils appartiennent à l'environnement d'exécution.Si vous déployez ou copiez une application qui contient une référence à un assembly enregistré dans le GAC, cet assembly ne sera ni déployé ni copié avec l'application, quelle que soit la valeur du paramètre Copie locale.Pour plus d'informations, consultez Références de projet.

Lorsque vous ajoutez manuellement une référence à l'un des espaces de noms EnvDTE (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a ou EnvDTE100), attribuez la valeur False à la propriété Incorporer les types interop, dans la fenêtre Propriétés.Si cette propriété a la valeur True, des problèmes de génération risquent de survenir car certaines propriétés EnvDTE ne peuvent pas être incorporées.

Tous les projets du Bureau contiennent une référence implicite à mscorlib.Les projets Visual Basic contiennent une référence implicite à Microsoft.VisualBasic.Dans Visual Studio 2012, tous les projets contiennent une référence implicite à System.Core, même s'il est supprimé de la liste de références.

Si un type de projet ne prend pas en charge les assemblys, l'onglet ne s'affiche pas dans la boîte de dialogue Gestionnaire de références.

L'onglet Assemblys comprend deux sous-onglets :

  1. Framework : répertorie tous les assemblys qui constituent le Framework ciblé.

    • Les assemblys publiés se trouvent dans le Framework complet et sont énumérés dans la liste de Framework lorsque votre projet cible un profil de Framework ciblé.Les assemblys sont publiés en gris pour les différencier de ceux qui existent dans le profil de Framework ciblé du projet.Par exemple, si un projet cible le client .NET Framework 4, la liste Framework indique les assemblys publiés à partir de .NET Framework 4.Lorsqu'un utilisateur ajoute un assembly publié, cet utilisateur est averti une fois que la boîte de dialogue Gestionnaire de références est fermée, le projet est ensuite reciblé vers .NET Framework 4 et l'assembly publié est ajouté.

    • Les projets pour les applications Windows Store contiennent des références à tous les assemblys du .NET pour les applications du Windows Store ciblé par défaut sur la création de projet.Dans les projets managés, un nœud en lecture seule dans le dossier Références de l'Explorateur de solutions indique la référence au Framework complet.Par conséquent, l'onglet Framework n'énumère pas les assemblys à partir du Framework et affiche à la place le message suivant : « Tous les assemblys .NET Framework sont déjà référencés.Utilisez l'Explorateur d'objets pour explorer les références dans le Framework. » Pour les projets du Bureau, l'onglet Framework énumère des assemblys du .NET Framework ciblé et l'utilisateur doit ajouter les références requises par l'application.

  2. Les extensions répertorient tous les assemblys que les fournisseurs externes de composants et les contrôles ont développés pour étendre le Framework ciblé.Selon l'objectif de l'application utilisateur, ces assemblys peuvent être nécessaires.

    • Les extensions sont remplies en énumérant les assemblys stockés dans les emplacements suivants :

      32-bit machine:
      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]
      64-bit machine:
      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]
      And older versions of the [Target Framework Identifier]
      

      Par exemple, si un projet cible le .NET Framework 4 sur un ordinateur 32 bits, les extensions énumèrent les assemblys qui sont stockés dans \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\ et \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\.

Onglet COM

L'onglet COM répertorie tous les composants COM pouvant être référencés.Si vous souhaitez ajouter une référence à une DLL COM inscrite qui contient un manifeste interne, annulez d'abord l'inscription de la DLL.Sinon, Visual Studio ajoute la référence d'assembly comme contrôle ActiveX, et non comme DLL native.

Si un type de projet ne prend pas en charge COM, l'onglet ne s'affiche pas dans la boîte de dialogue Gestionnaire de références.

Onglet Solution

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

Un projet peut faire référence à un autre projet qui cible une version différente du .NET Framework.Par exemple, vous pouvez créer un projet qui cible .NET Framework 4 mais qui référence un assembly qui est généré pour .NET Framework 2.Toutefois, le projet .NET Framework 2 ne peut pas référencer un projet .NET Framework 4.Pour plus d'informations, consultez Détermination d'une version ou d'un profil spécifique du .NET Framework.

Un projet qui cible le .NET Framework 4 est incompatible avec un projet qui cible le .NET Framework 4 Client Profile.

Dans Visual Studio 2012, une référence de fichier est créée au lieu d'une référence de projet si un projet cible du .NET Framework d'un projet est 4 et si la version cible du .NET Framework de l'autre projet est antérieure.

Un projet qui cible .NET pour les applications du Windows Store ne peut pas ajouter de référence de projet à un projet qui cible le .NET Framework et vice versa.

Onglet Windows

L'onglet Windows répertorie tous le Kit de développement logiciel qui sont spécifiques aux plateformes sur lesquelles s'exécutent des systèmes d'exploitation Windows.

Vous pouvez générer un fichier WinMD dans Visual Studio de deux façons :

  • Projets managés d'application Windows Store : les projets d'application Windows Store peuvent générer les binaires de WinMD en définissant des propriétés d'un projet | d'un type de sortie = fichier WinMD.Le nom de fichier WinMD doit être l'espace de noms du sur-ensemble de tous les espaces de noms qui existent dans celui-ci.Par exemple, si un projet comprend des espaces de noms A.B et A.B.C, les étiquettes possibles pour le WinMD généré sont A.winmd et A.B.winmd.Si un utilisateur affiche une valeur Propriétés de projet | Nom d'assembly ou Propriétés de projet | Espace de noms qui sont disjointes de l'ensemble d'espaces de noms du projet ou s'il n'y a aucun espace de noms de sur-ensemble dans un projet, un avertissement de construction est généré : « A.winmd » n'est pas un nom de fichier de .winmd valide de cet assembly.Tous les types compris dans un fichier de métadonnées Windows doivent se trouver dans un sous-espace de noms du nom du fichier.Les types qui n'existent pas dans un sous espace de noms du nom de fichier ne peuvent pas être localisés lors de l'exécution.Dans cet assembly, le plus petit espace de noms courant est « CSWSClassLibrary1 ».Un projet Visual Basic ou Visual C# de bureau peut uniquement utiliser des WinMDs générés à l'aide des Kit de développement logiciel (SDK) Windows 8, appelés WinMDs internes, et ne peut pas générer de WinMD.

  • Projets d'application Windows Store au format natif  : un fichier WinMD natif comprend uniquement des métadonnées.Son implémentation existe dans un fichier DLL distinct.Il est possible de produire des binaires natifs en choisissant le modèle de projet Composant Windows Runtime dans la boîte de dialogue Nouveau projet ou en partant d'un projet vide et en modifiant les propriétés du projet pour générer un fichier WinMD.Si le projet se compose d'espaces de noms disjoints, une erreur de build indique à l'utilisateur de combiner les espaces de noms ou d'exécuter l'outil MSMerge.

L'onglet Windows comprend deux sous-groupes.

Sous-groupe Principal

Le sous-groupe Principal répertorie tous les WinMDs (pour les éléments Windows Runtime) dans le Kit de développement logiciel (SDK) de la version Windows ciblée.

Les projets d'application Windows Store contiennent des références à tous les WinMDs du Kit de développement logiciel Windows 8 par défaut sur la création de projet.Dans les projets managés, un nœud en lecture seule dans le dossier Références de l'Explorateur de solutions indique la référence au Kit de développement logiciel (SDK) Windows 8 complet.Par conséquent, le sous-groupe Principal du Gestionnaire de références n'énumère pas les assemblys du Kit de développement logiciel (SDK) Windows 8 et n'affiche pas à la place le message : « Le Kit de développement logiciel Windows est déjà référencé.Utilisez l'Explorateur d'objets pour explorer les références dans le Kit de développement logiciel Windows. »

Dans les projets du Bureau, le sous-groupe Principal ne s'affiche pas par défaut.Vous pouvez ajouter le Windows Runtime en ouvrant le menu contextuel du nœud du projet, en choisissant Décharger le projet, en ajoutant l'extrait de code suivant, et en rouvrant le projet (sur le nœud du projet, choisissez Recharger le projet).Lorsque vous appelez la boîte de dialogue Gestionnaire de références, le sous-groupe Principal s'affiche.

  <PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
  </PropertyGroup>

Activez bien la case à cocher Windows sur ce sous-groupe.Vous devriez ensuite pouvoir utiliser les éléments Windows Runtime.Toutefois, vous voudrez également ajouter System.Runtime, dans lequel Windows Runtime définit des classes et des interfaces standard, telles que IEnumerable, qui sont utilisées dans toutes les bibliothèques Windows Runtime.Pour plus d'informations sur l'ajout du System.Runtime, consultez Applications du Bureau managées et Windows Runtime.

Sous-groupe Extensions

Les extensions indiquent les Kits de développement logiciel utilisateur qui étendent la plateforme Windows ciblée.Cet onglet apparaît pour les projets d'application Windows Store uniquement.Les projets du Bureau n'indiquent pas cet onglet car ils peuvent utiliser uniquement des fichiers .winmd internes.

Un Kit de développement logiciel est une collection de fichiers que Visual Studio traite comme un seul composant.Sous l'onglet Extensions, les Kits de développement logiciel qui s'appliquent au projet à partir duquel la boîte de dialogue Gestionnaire de références a été appelée sont répertoriés comme des entrées uniques.Une fois ajouté à un projet, tout le contenu du Kit de développement logiciel (SDK) est utilisé par Visual Studio afin que l'utilisateur n'ait rien d'autre à faire pour exploiter le contenu du Kit de développement logiciel (SDK) dans IntelliSense, dans la boîte à outils, dans les concepteurs, dans l'Explorateur d'objets, dans la création, dans le déploiement, dans le débogage et l'empaquetage.Pour plus d'informations sur l'affichage du Kit de développement logiciel (SDK) dans l'onglet Extensions, consultez Creating a Software Development Kit.

[!REMARQUE]

Si un projet fait référence à un Kit de développement logiciel qui dépend d'un autre, Visual Studio n'utilise pas le deuxième kit à moins que l'utilisateur y ajoute manuellement une référence.Lorsqu'un utilisateur choisit un Kit de développement logiciel (SDK) dans l'onglet Extensions, la boîte de dialogue Gestionnaire de références l'aide à identifier les dépendances du Kit de développement logiciel en répertoriant non seulement le nom et la version du Kit de développement logiciel (SDK) mais également le nom de toutes les dépendances du Kit de développement logiciel dans le volet d'informations.Si un utilisateur ne remarque pas les dépendances et n'ajoute pas ce Kit de développement logiciel (SDK), MSBuild l'invite à ajouter des dépendances.

Si un type de projet ne prend pas en charge les Extensions, l'onglet ne s'affiche pas dans la boîte de dialogue Gestionnaire de références.

Bouton Parcourir

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

Un projet peut faire référence à un composant qui cible une version différente du .NET Framework.Par exemple, vous pouvez créer une application qui cible le .NET Framework 4 Client Profile, qui référence un composant qui cible le .NET Framework 2.Pour plus d'informations, consultez Détermination d'une version ou d'un profil spécifique du .NET Framework.

Évitez, si possible, d'ajouter des références de fichier aux sorties d'un autre projet de la même solution, car cela risquerait de provoquer des erreurs de compilation.Utilisez plutôt l'onglet Solution de la boîte de dialogue Gestionnaire de références afin de créer des références entre projets.Cela facilite le développement en équipe, en permettant une meilleure gestion des bibliothèques de classes créées dans vos projets.Pour plus d'informations, consultez Dépannage de références rompues.

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

Lors d'une référence de fichier à un WinMD, la mise en page attendue est que tous les fichiers FileName.winmd, FileName.dll, et.pri FileName soient placés les uns aux côtés des autres.Si vous référencez un fichier 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, des erreurs de rendu et d'exécution se produisent.

  • Composant natif : un projet natif crée un fichier WinMD pour chaque ensemble d'espaces de noms disjoint et une DLL qui contient l'implémentation.Les WinMD auront des noms disparates.En faisant référence à ce fichier du composant natif, MSBuild ne sait pas que les WinMD nommés différemment constituent un composant.Par conséquent, seuls les fichiers FileName.dll et FileName.winmd portant le même nom sont copiés, et des erreurs d'exécution se produisent.Pour contourner ce problème, créez une extension Kit de développement SDK.Pour plus d'informations, consultez Creating a Software Development Kit.

  • Utilisation de contrôles : au minimum, un contrôle XAML se compose d'un fichier FileName.winmd, d'un fichier FileName.dll, d'un fichier FileName.pri, d'un fichier XamlName.xaml, et d'un fichier ImageName.jpg.Lorsque le projet est généré, les fichiers de ressources qui sont associés à la référence de fichier ne sont pas copiés dans le répertoire de sortie du projet, uniquement les fichiers FileName.winmd, FileName.dll et FileName.pri sont copiés.Une erreur de build est enregistrée pour indiquer à l'utilisateur que les ressources XamlName.xaml et ImageName.jpg sont manquantes.Pour que l'opération réussisse, l'utilisateur doit copier manuellement les fichiers de ressources dans le répertoire de sortie du projet pour la génération et le débogage/l'exécution.Pour contourner ce problème, créez une extension Kit de développement logiciel en suivant les étapes de Creating a Software Development Kit ou modifiez le fichier projet pour ajouter la propriété suivante :

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

    [!REMARQUE]

    Si vous ajoutez la propriété, la build peut s'exécuter plus lentement.

Recent

Les boutons Assemblys, COM, Windows et Parcourir prennent tous en charge un onglet Récent, qui énumère la liste des composants qui ont été récemment ajoutés aux projets.

Rechercher

La barre de recherche de la boîte de dialogue Gestionnaire de références fonctionne sur l'onglet situé dans le focus.Par exemple, si un utilisateur tape « système » dans la barre de recherche alors que l'onglet Solution est affiché, la recherche ne retourne aucun résultat à moins que la solution consiste en un nom de projet contenant « système ».

Voir aussi

Tâches

Comment : ajouter ou supprimer des références à l'aide de la boîte de dialogue Ajouter une référence

Concepts

Gestion des références de projet