Gérer les dépendances de package dans les applications .NET

Cet article explique comment ajouter et supprimer des dépendances de package en modifiant le fichier projet ou à l’aide de l’interface CLI.

Élément <PackageReference>

L’élément <PackageReference> de fichier projet a la structure suivante :

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" />

L’attribut Include spécifie l’identifiant du package à ajouter au projet. L’attribut Version spécifie la version à obtenir. Les versions sont spécifiées en fonction des règles de version de NuGet.

Utilisez des conditions pour ajouter une dépendance disponible uniquement dans une cible spécifique, comme illustré dans l’exemple suivant :

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />

La dépendance dans l’exemple précédent ne sera valide que si la build se produit pour cette cible donnée. Dans la condition, $(TargetFramework) est une propriété MSBuild définie dans le projet. Pour les applications .NET les plus courantes, vous n’avez pas besoin faire ceci.

Ajouter et supprimer des dépendances

Vous pouvez ajouter et supprimer des dépendances en modifiant votre fichier projet ou par le biais des commandes CLI .NET.

Modifier le fichier projet

Pour ajouter une dépendance, ajoutez un élément <PackageReference> à l’intérieur d’un élément <ItemGroup>. Vous pouvez ajouter à un <ItemGroup> existant ou en créer un nouveau.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    ...
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.2" />
  </ItemGroup>

</Project>

Pour supprimer une dépendance, supprimez son élément <PackageReference> du fichier projet.

Utiliser l’interface CLI

Pour ajouter une dépendance, exécutez la commande dotnet add package comme illustré dans l’exemple suivant :

dotnet add package Microsoft.EntityFrameworkCore

Pour supprimer une dépendance, exécutez la commande dotnet remove package comme illustré dans l’exemple suivant :

dotnet remove package Microsoft.EntityFrameworkCore

Conseils

  • N’incluez pas d’entrées dans l’opération de restauration dans le fichier .targets ou .props d’un package référencé. Ces entrées peuvent inclure des éléments PackageReference, des attributs ExcludeAssets, des flux NuGet à utiliser ou d’autres configurations NuGet. Les fichiers .targets et .props des packages ne sont pas utilisés tant que la restauration NuGet n’est pas terminée. Tout ce qui est nécessaire à la restauration doit se trouver dans le fichier projet ou le fichier .targets du projet lui-même, et non dans une dépendance de package.

  • Si vous souhaitez utiliser l’API ASP.NET dans une application console ou une bibliothèque de classes, ajoutez un élément FrameworkReference à votre fichier projet :

    <FrameworkReference Include="Microsoft.AspNetCore.App" />

    Pour plus d’informations, consultez Utiliser l’infrastructure partagée ASP.NET Core.

Voir aussi