Freigeben über


NETSDK1071: Explizit versionierte PackageReference-Verweise auf ein Metapaket würden in das Framework eingeschlossen werden

Dieser Artikel gilt für: ✔️ .NET 5.0.100 SDK und höhere Versionen

Wenn das .NET SDK die Warnung NETSDK1071 ausgibt, deutet dies darauf hin, dass es in der Zukunft möglicherweise einen Versionskonflikt zwischen der Version des Metapakets, wie es in einem PackageReference-Verweis angegeben ist, und der Version des Metapakets, wie auf es implizit über eine TargetFramework-Eigenschaft verwiesen wird, geben könnte:

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

Da TargetFramework automatisch eine Version des Metapakets einführt, kommt es zu einem Konflikt zwischen den Versionen, falls sich diese unterscheiden.

Problembehebung:

  1. Wenn Sie .NET Core oder .NET Standard als Ziel verwenden, sollten Sie dies berücksichtigen und explizite Verweise auf Microsoft.NETCore.App oder NETStandard.Library in Ihrer Projektdatei vermeiden.

  2. Wenn Sie .NET Core als Ziel verwenden und eine bestimmte Version der Runtime benötigen, sollten Sie die <RuntimeFrameworkVersion>-Eigenschaft verwenden, anstatt direkt auf Metapakete zu verweisen. Dies kann beispielsweise vorkommen, wenn Sie eigenständige Bereitstellungen verwenden und eine bestimmte Patchversion der 1.0.0 LTS-Runtime benötigen.

  3. Wenn Sie .NET Standard als Ziel verwenden und eine bestimmte Version von NetStandard.Library benötigen, können Sie die <NetStandardImplicitPackageVersion>-Eigenschaft verwenden und die Version festlegen, die Sie benötigen.

  4. Fügen Sie Microsoft.NETCore.App oder NETSTandard.Library in .NET Framework-Projekten nicht explizit Verweise hinzu, und aktualisieren Sie diese auch nicht. Wenn bei der Verwendung eines auf .NET Standard basierenden NuGet-Pakets eine bestimmte Version von NETStandard.Library benötigt wird, installiert NuGet diese automatisch.

  5. Geben Sie keine Version für Microsoft.AspNetCore.App oder Microsoft.AspNetCore.All an, wenn Sie .NET Core 2.1 oder höher verwenden, da das .NET SDK die geeignete Version automatisch auswählt. (Hinweis: Dies funktioniert nur, wenn .NET Core 2.1 als Ziel verwendet wird und das Projekt auch Microsoft.NET.Sdk.Web verwendet. Dieses Problem wurde im .NET Core 2.2 SDK behoben.)

  6. Wenn die Warnung nicht mehr angezeigt werden soll, können Sie sie deaktivieren:

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