NETSDK1071: Explicitně verzovaný PackageReference na metabalíček, který by byl součástí frameworku.

Tento článek se vztahuje na: ✔️ .NET 5.0.100 SDK a novější verze

Když sada .NET SDK zobrazí upozornění NETSDK1071, naznačuje, že v budoucnu může dojít ke konfliktu verzí mezi verzí metabalíku zadanou v packageReference a verzí tohoto metabalíku implicitně odkazovaného prostřednictvím vlastnosti TargetFramework:

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

Vzhledem k tomu, že TargetFramework automaticky zahrnuje verzi metabalíku, verze budou v konfliktu, pokud se budou lišit.

Řešení je následující:

  1. Pokud cílíte na .NET Core nebo .NET Standard, zvažte vyhnout se explicitním odkazům na Microsoft.NETCore.App nebo NETStandard.Library ve svém souboru projektu.

  2. Pokud při cílení na .NET Core potřebujete konkrétní verzi modulu runtime, místo přímého odkazu na metabalík použijte <RuntimeFrameworkVersion>vlastnost. K tomu může dojít například v případě, že používáte samostatné nasazení a potřebujete specifickou opravu runtime 1.0.0 LTS.

  3. Pokud při cílení na .NET Standard potřebujete konkrétní verzi NetStandard.Library, můžete použít vlastnost <NetStandardImplicitPackageVersion> a nastavit ji na požadovanou verzi.

  4. Nepřidávejte ani neaktualizujte explicitně odkazy na žádný z prvků Microsoft.NETCore.App nebo NETSTandard.Library v projektech rozhraní .NET Framework. NuGet automaticky nainstaluje libovolnou verzi NETStandard.Library , kterou potřebujete při použití balíčku NuGet založeného na .NET Standard.

  5. Nezadávejte verzi pro Microsoft.AspNetCore.App nebo Microsoft.AspNetCore.All při použití .NET Core 2.1 nebo novější, protože sada .NET SDK automaticky vybere příslušnou verzi. (Poznámka: Funguje pouze při cílení na .NET Core 2.1, pokud projekt také používá Microsoft.NET.Sdk.Web. Tento problém byl vyřešen v sadě .NET Core 2.2 SDK.)

  6. Pokud chcete, aby se upozornění odpojilo, můžete ho také zakázat:

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