Gérer les références dans un projet

Avant d’écrire du code pour un composant externe ou un service connecté, vous devez d’abord inclure une référence à celui-ci dans votre projet. Une référence est essentiellement une entrée dans un fichier projet qui contient les informations dont Visual Studio a besoin pour localiser le composant ou le service.

La façon dont vous ajoutez une référence dépend du type de projet du code sur lequel vous travaillez :

  • Si vous voyez un nœud Dépendances dans Explorateur de solutions, vous pouvez utiliser le menu contextuel du clic droit pour sélectionner Ajouter une référence de projet.

    Screenshot of the Add Project Reference option from the right-click context menu.

    Vous pouvez également cliquer avec le bouton droit sur le nœud de projet, et sélectionner Ajouter>Référence de projet.

  • Si vous voyez un nœud Références dans Explorateur de solutions, vous pouvez utiliser le menu contextuel du clic droit pour sélectionner Ajouter une référence.

    Screenshot of the Add Reference option from the right-click context menu.

    Vous pouvez également cliquer avec le bouton droit sur le nœud de projet, et sélectionner Ajouter>Référence.

    Pour plus d’informations, consultez Guide pratique pour ajouter ou supprimer des références.

Vous pouvez ajouter une référence aux types de composant et service suivants :

  • Bibliothèques de classes ou assemblys .NET

  • Applications UWP

  • Composants COM

  • Autres assemblys ou bibliothèques de classes de projets dans la même solution

  • Projets partagés

  • Services web XML

Références d’applications UWP

La plateforme Windows universelle (UWP) fournit une plateforme d’application commune pour chaque appareil qui exécute Windows. Pour découvrir comment créer une application UWP, consultez Tutoriel : Créer votre première application de plateforme Windows universelle dans Visual Studio avec XAML et C#.

Références de projets

Les projets de la plateforme Windows universelle (UWP) peuvent créer des références à d’autres projets UWP dans la solution ou à des projets ou fichiers binaires Windows 8.1, à condition que ces projets n’utilisent pas des API déconseillées dans Windows 10 et versions ultérieures. Pour plus d’informations, consultez Passer de Windows Runtime 8 à la plateforme Windows universelle.

Si vous choisissez de recibler les projets Windows 8.1 vers Windows 10 et versions ultérieures, consultez Déplacer, migrer et mettre à jour des projets Visual Studio.

Astuce

Pour plus d’informations sur la création et la génération d’une application UWP pour Windows 10 et Windows 11, consultez Choisir une version UWP.

Références du kit SDK d’extension

Les applications de Visual Basic, C#, C++ et plateforme Windows universelle (UWP) JavaScript peuvent référencer des Kits de développement logiciel (SDK) d’extension qui ciblent Windows 8.1, à condition que ces SDK d’extension n’utilisent pas des API déconseillées dans Windows 10 et versions ultérieures. Vérifiez auprès du site du fournisseur de Kits de développement logiciel (SDK) d’extension s’ils peuvent être référencés par des applications UWP.

Si vous constatez que le Kit de développement logiciel (SDK) d’extension référencé par votre application n’est pas pris en charge, vous devez effectuer les étapes suivantes :

  1. Recherchez le nom du projet qui provoque l’erreur. La plateforme ciblée par votre projet est indiquée entre parenthèses en regard du nom du projet. Par exemple, NomDeMonProjet (Windows 8.1) signifie que votre projet NomDeMonProjet cible la version de plateforme Windows 8.1.

  2. Accédez au site du fournisseur propriétaire du SDK d’extension non pris en charge et installez la version de celui dont les dépendances sont compatibles avec la version de la plateforme ciblée par votre projet.

    Notes

    L’une des manières de vérifier si un SDK d’extension a des dépendances vis-à-vis d’autres SDK d’extension consiste à regarder dans le Gestionnaire de références. Redémarrez Visual Studio, créez un projet d’application UWP C#, puis cliquez avec le bouton droit sur le projet et sélectionnez Ajouter une référence. Accédez à l’onglet Windows et au sous-onglet Extensions, puis sélectionnez le SDK d’extension. Examinez le volet droit dans le Gestionnaire de références. S’il possède des dépendances, elles y sont répertoriées.

    Important

    Si votre projet cible spécifiquement Windows 10 et que le Kit de développement logiciel (SDK) d’extension installé au cours de l’étape précédente a une dépendance vis-à-vis du package d’exécution Microsoft Visual C++, la version du package d’exécution Microsoft Visual C++ compatible avec Windows 10 est la version 14.0 et est installée avec Visual Studio.

  3. Si le SDK d’extension que vous avez installé au cours de l’étape précédente a des dépendances vis-à-vis d’autres SDK d’extension, accédez aux sites des fournisseurs qui ont des dépendances, puis installez les versions de ces dépendances qui sont compatibles avec la version de la plateforme ciblée par votre projet.

  4. Redémarrez Visual Studio et ouvrez votre application.

  5. Cliquez avec le bouton droit sur le nœud Références ou Dépendances dans le projet ayant déclenché l’erreur, puis sélectionnez Ajouter une référence.

  6. Sélectionnez l’onglet Windows, puis le sous-onglet Extensions, décochez les cases des anciens SDK d’extension, puis cochez les cases des nouveaux SDK d’extension. Sélectionnez OK.

Ajouter une référence au moment du design

Quand vous référencez un assembly dans votre projet, Visual Studio recherche cet assembly aux emplacements suivants :

  • Le répertoire de projet actuel (vous pouvez rechercher ces assemblys via l’onglet Parcourir ).

  • Autres répertoires de projet de la même solution (vous pouvez rechercher ces assemblys sous l’onglet Projets ).

Notes

  • Tous les projets contiennent une référence implicite à mscorlib.
  • Tous les projets contiennent une référence implicite à System.Core, même si System.Core est supprimé de la liste de références.
  • Les projets Visual Basic contiennent une référence implicite à Microsoft.VisualBasic.

Références à des composants partagés au moment de l’exécution

Au moment de l’exécution, les composants doivent se trouver dans le chemin de sortie du projet ou dans le Global Assembly Cache (GAC). Si le projet contient une référence à un objet qui ne se trouve pas à l’un de ces emplacements, vous devez copier la référence dans le chemin de sortie du projet quand vous générez ce dernier. La propriété CopyLocal indique si cette copie doit être effectuée. Si la valeur est True, la référence est copiée dans le répertoire du projet quand vous générez le projet. Si la valeur est False, la référence n’est pas copiée.

Si vous déployez une application qui contient une référence à un composant personnalisé inscrit dans le GAC, ce composant ne sera pas déployé avec l’application, quelle que soit la valeur du paramètre CopyLocal. Dans les versions antérieures de Visual Studio, vous pouviez définir la propriété CopyLocal sur une référence pour vous assurer que l’assembly a été déployé. À présent, vous devez ajouter manuellement l’assembly au dossier \Bin. Cette action permet de placer l’ensemble du code personnalisé sous surveillance et ainsi de réduire le risque de publication d’un code personnalisé qui ne vous est pas familier.

Par défaut, la propriété CopyLocal a la valeur False si l’assembly ou le composant se trouve dans le Global Assembly Cache ou s’il correspond à un composant d’infrastructure. Sinon, la valeur est True. Les références entre projets ont toujours la valeur True.

Référencer un projet ou un assembly qui cible une autre version de .NET

Vous pouvez créer des applications qui référencent des projets ou des assemblys ciblant une version différente de .NET. Par exemple, vous pouvez créer une application qui cible .NET Framework 4.6, qui référence un assembly ciblant .NET Framework 4.5. Si vous créez un projet ciblant une version antérieure de .NET, vous ne pouvez pas définir dans ce projet une référence à un projet ou à un assembly qui cible une version plus récente.

Pour plus d’informations, consultez Vue d’ensemble du ciblage des frameworks.

Références entre projets

Les références entre projets sont des références aux projets qui contiennent des assemblys. Vous les créez à l’aide de l’onglet Projets de la boîte de dialogue Gestionnaire de références. Visual Studio peut trouver un assembly si vous indiquez un chemin d’accès au projet.

Quand vous avez un projet qui produit un assembly, vous devez référencer le projet et non pas utiliser une référence de fichier. Une référence entre projets présente l’avantage de créer une dépendance entre les projets dans le système de build. Le projet dépendant est généré s’il a été modifié depuis la dernière build du projet qui référence. Une référence de fichier ne crée pas de dépendance de génération, il est donc possible de générer le projet de référence sans générer le projet dépendant, et la référence peut devenir obsolète. (Autrement dit, le projet peut référencer une version précédemment générée du projet.) Cela peut entraîner l’utilisation de plusieurs versions d’une même DLL dans le répertoire classe, ce qui n’est pas possible. Lorsque ce conflit se produit, un message s’affiche, par exemple « Avertissement : la dépendance ’fichier’ dans le projet ’projet’ ne peut pas être copiée dans le répertoire d’exécution, car elle remplacerait la référence ’fichier’. » Pour plus d’informations, consultez Dépanner les références rompues et Guide pratique pour créer et supprimer les dépendances d’un projet.

Remarque

Une référence de fichier est créée à la place d’une référence entre projets si la version cible du .NET Framework d’un projet est la version 4.5, et si la version cible du .NET Framework de l’autre projet est la version 2, 3, 3.5 ou 4.0.

Références des projets partagés

Contrairement à la plupart des autres types de projets, un projet partagé ne comprend pas de sortie binaire. Au lieu de cela, le code est compilé dans chaque projet qui le référence. Les projets partagés vous permettent d’écrire du code commun référencé par plusieurs projets d’application. Le code est compilé dans chacun des projets qui le référencent et peut inclure des directives de compilateur permettant d’incorporer des fonctionnalités propres à la plateforme dans la base de code partagée. 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.

Références de fichiers

Les références de fichiers sont des références directes à des assemblys qui se trouvent hors du contexte d’un projet Visual Studio. Vous les créez en utilisant l’onglet Parcourir de la boîte de dialogue Gestionnaire de références. Utilisez une référence de fichier quand vous avez seulement un assembly ou un composant, et pas le projet qui le crée comme sortie.