Freigeben über


NETSDK1071: Explizit versionsiertes PackageReference auf ein Metapaket, das im Framework enthalten wäre.

Dieser Artikel bezieht sich auf: ✔️ .NET 5.0.100 SDK und höhere Versionen

Wenn das .NET SDK Warnungen NETSDK1071 ausgibt, deutet es darauf hin, dass es in Zukunft einen Versionskonflikt zwischen der In packageReference-Version und der Version dieses Metapackages gibt, die implizit über eine TargetFramework-Eigenschaft referenziert wird:

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

Da die TargetFramework Automatisch eine Version des Metapackages mit sich bringt, werden die Versionen in Konflikt stehen, wenn sie sich je unterscheiden.

Gehen Sie wie folgt vor, um dies zu beheben:

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

  2. Wenn Sie eine bestimmte Version der Laufzeit benötigen, wenn sie auf .NET Core ausgerichtet ist, verwenden Sie die <RuntimeFrameworkVersion>Eigenschaft, anstatt direkt auf das Metapaket zu verweisen. Dies kann beispielsweise passieren, wenn Sie eigenständige Bereitstellungen verwenden und einen bestimmten Patch der 1.0.0 LTS-Laufzeit benötigen.

  3. Wenn Sie eine bestimmte Version für NetStandard.Library .NET Standard benötigen, können Sie die <NetStandardImplicitPackageVersion> Eigenschaft verwenden und auf die gewünschte Version festlegen.

  4. Fügen Sie verweise nicht explizit auf Microsoft.NETCore.App .NET Framework-Projekte oder NETSTandard.Library in .NET Framework-Projekten hinzu oder aktualisieren Sie sie nicht. NuGet installiert automatisch alle benötigten Versionen NETStandard.Library , wenn Sie ein .NET Standard-basiertes NuGet-Paket verwenden.

  5. Geben Sie keine Version für Microsoft.AspNetCore.App oder Microsoft.AspNetCore.All bei Verwendung von .NET Core 2.1+ an, da das .NET SDK automatisch die entsprechende Version auswählt. (Hinweis: Dies funktioniert nur bei der Zielbestimmung von .NET Core 2.1, wenn das Projekt auch verwendet Microsoft.NET.Sdk.Webwird. Dieses Problem wurde im .NET Core 2.2 SDK behoben.)

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

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