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 :
Lorsque vous ciblez .NET Core ou .NET Standard, pensez à éviter les références explicites à
Microsoft.NETCore.App
ouNETStandard.Library
dans votre fichier projet.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.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.N’ajoutez ni ne mettez à jour explicitement des références à
Microsoft.NETCore.App
ouNETSTandard.Library
dans les projets .NET Framework. NuGet installe automatiquement toute version deNETStandard.Library
nécessaire lors de l’utilisation d’un package NuGet basé sur .NET Standard.Ne spécifiez pas de version pour
Microsoft.AspNetCore.App
ouMicrosoft.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 utiliseMicrosoft.NET.Sdk.Web
également . Ce problème a été résolu dans le Kit de développement logiciel (SDK) .NET Core 2.2.)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>