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:
Wenn Sie .NET Core oder .NET Standard als Ziel verwenden, sollten Sie dies berücksichtigen und explizite Verweise auf
Microsoft.NETCore.App
oderNETStandard.Library
in Ihrer Projektdatei vermeiden.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.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.Fügen Sie
Microsoft.NETCore.App
oderNETSTandard.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 vonNETStandard.Library
benötigt wird, installiert NuGet diese automatisch.Geben Sie keine Version für
Microsoft.AspNetCore.App
oderMicrosoft.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 auchMicrosoft.NET.Sdk.Web
verwendet. Dieses Problem wurde im .NET Core 2.2 SDK behoben.)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>