Partager via


NETSDK1071 : PackageReference explicitement versionné vers un métapaquet qui serait inclus dans l’infrastructure.

Cet article s’applique à : ✔️ Kit de développement logiciel (SDK) .NET 5.0.100 et versions ultérieures

Lorsque le Kit de développement logiciel (SDK) .NET émet un avertissement NETSDK1071, il suggère qu’il peut y avoir un conflit de version à l’avenir entre la version d’un métapaquet spécifié dans un PackageReference et la version de ce métapaquet comme implicitement référencé via une propriété TargetFramework :

<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

Étant donné que le TargetFramework introduit automatiquement une version du métapackage, les versions seront en conflit si elles diffèrent.

Pour résoudre ce problème :

  1. Lorsque vous ciblez .NET Core ou .NET Standard, pensez à éviter les références explicites à Microsoft.NETCore.App ou NETStandard.Library dans votre fichier projet.

  2. Si vous avez besoin d’une version spécifique du runtime quand vous ciblez .NET Core, utilisez la propriété <RuntimeFrameworkVersion> dans votre projet au lieu de référencer le métapaquet. Par exemple, cela peut se produire si vous utilisez des déploiements autonomes et que vous avez besoin d’un patch spécifique du runtime 1.0.0 LTS.

  3. Si vous avez besoin d’une version spécifique de NetStandard.Library quand vous ciblez .NET Standard, vous pouvez utiliser la propriété <NetStandardImplicitPackageVersion> et définir la version dont vous avez besoin.

  4. N’ajoutez ni ne mettez à jour explicitement des références à Microsoft.NETCore.App ou NETSTandard.Library dans les projets .NET Framework. NuGet installe automatiquement toute version de NETStandard.Library nécessaire lors de l’utilisation d’un package NuGet basé sur .NET Standard.

  5. Ne spécifiez pas de version pour Microsoft.AspNetCore.App ou Microsoft.AspNetCore.All lors de l’utilisation de .NET Core 2.1+, car le Kit de développement logiciel (SDK) .NET sélectionne automatiquement la version appropriée. (Remarque : cela fonctionne uniquement lors du ciblage de .NET Core 2.1 si le projet utilise Microsoft.NET.Sdk.Webégalement . Ce problème a été résolu dans le Kit de développement logiciel (SDK) .NET Core 2.2.)

  6. Si vous souhaitez que l’avertissement disparaisse, vous pouvez également le désactiver :

    <PackageReference Include="Microsoft.NetCore.App" Version="2.2.8" >
      <AllowExplicitVersion>true</AllowExplicitVersion>
    </PackageReference>