Sdílet prostřednictvím


NETSDK1071: Explicitně verze PackageReference na metabalíč, který by byl součástí architektury.

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>

TargetFramework Vzhledem k tomu, že automaticky přináší verzi metabalíku, budou verze kolidovat, pokud se budou lišit.

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

  1. Pokud cílíte na .NET Core nebo .NET Standard, zvažte, že se vyhnete explicitním odkazům na Microsoft.NETCore.App soubor projektu nebo NETStandard.Library do 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 konkrétní opravu modulu runtime 1.0.0 LTS.

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

  4. Nepřidávejte ani neaktualizovat odkazy na projekty Microsoft.NETCore.App rozhraní .NET Framework ani NETSTandard.Library explicitně. 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>