NETSDK1071: Kifejezetten megadott verziójú PackageReference olyan metacsomagra, amelyet a keretrendszer tartalmaz.

Ez a cikk a következőre vonatkozik: ✔️ .NET 5.0.100 SDK és újabb verziók

Amikor a .NET SDK kiadja a NETSDK1071 figyelmeztetést, az arra utal, hogy a jövőben verzióütközés lehet a PackageReference elemben megadott metacsomag verziója és az ugyanazon metacsomag azon verziója között, amelyre a TargetFramework tulajdonságon keresztül implicit hivatkozás történik:

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

Mivel az TargetFramework automatikusan behozza a metapackage egy verzióját, a verziók ütköznek, ha valaha is különböznek.

A probléma megoldásához:

  1. Ha a .NET Core-t vagy a .NET Standardot célozza meg, fontolja meg a Microsoft.NETCore.App vagy a NETStandard.Library elemre mutató explicit hivatkozások mellőzését a projektfájlban.

  2. Ha a .NET Core megcélzásakor a futtatókörnyezet egy adott verziójára van szüksége, használja a tulajdonságot ahelyett <RuntimeFrameworkVersion>, hogy közvetlenül hivatkozna a metapackage-ra. Ez például akkor fordulhat elő, ha önálló telepítéseket használ, és az 1.0.0-s LTS-futtatókörnyezet egy adott javítására van szüksége.

  3. Ha a .NET Standard célcsoportjának egy adott verziójára NetStandard.Library van szüksége, használhatja a <NetStandardImplicitPackageVersion> tulajdonságot, és beállíthatja a kívánt verzióra.

  4. Ne adjon hozzá és ne frissítsen explicit módon hivatkozásokat sem a Microsoft.NETCore.App, sem a NETSTandard.Library elemre a .NET-keretrendszerbeli projektekben. A NuGet automatikusan telepíti a NETStandard.Library szükséges verziókat egy .NET Standard-alapú NuGet-csomag használatakor.

  5. Ne adjon meg verziót a(z) Microsoft.AspNetCore.App vagy Microsoft.AspNetCore.All elemhez a .NET Core 2.1+ használatakor, mert a .NET SDK automatikusan kiválasztja a megfelelő verziót. (Megjegyzés: Ez csak akkor működik, ha a .NET Core 2.1-et célozza, ha a projekt is használ Microsoft.NET.Sdk.Web. Ezt a problémát a .NET Core 2.2 SDK-ban oldották meg.)

  6. Ha azt szeretné, hogy a figyelmeztetés eltűnjön, letilthatja azt is:

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