Delen via


NETSDK1071: PackageReference met expliciet versiebeheer naar een metapackage die zou worden opgenomen in het framework.

Dit artikel is van toepassing op: ✔️ .NET 5.0.100 SDK en latere versies

Wanneer de .NET SDK de waarschuwing NETSDK1071 geeft, duidt dit erop dat er in de toekomst mogelijk een versieconflict kan zijn tussen de versie van een metapackage die is opgegeven in een PackageReference en de versie van die metapackage, zoals impliciet wordt verwezen via een TargetFramework-eigenschap.

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

Omdat TargetFramework automatisch een versie van de metapackage meebrengt, zullen de versies conflicteren als ze ooit verschillen.

De oplossing:

  1. Wanneer u zich richt op .NET Core of .NET Standard, kunt u expliciete verwijzingen naar Microsoft.NETCore.App of NETStandard.Library in uw projectbestand voorkomen.

  2. Als u een specifieke versie van de runtime nodig hebt bij het doel van .NET Core, gebruikt u de <RuntimeFrameworkVersion>eigenschap in plaats van rechtstreeks naar de metapackage te verwijzen. Dit kan bijvoorbeeld gebeuren als u zelfstandige implementaties gebruikt en een specifieke patch van de 1.0.0 LTS-runtime nodig hebt.

  3. Als u een specifieke versie nodig hebt van NetStandard.Library wanneer u zich richt op .NET Standard, kunt u de <NetStandardImplicitPackageVersion> eigenschap gebruiken en deze instellen op de versie die u nodig hebt.

  4. Voeg niet expliciet verwijzingen toe aan of werk ze bij naar Microsoft.NETCore.App of NETSTandard.Library in .NET Framework-projecten. NuGet installeert automatisch elke benodigde versie van NETStandard.Library wanneer u een NuGet-pakket gebruikt dat is gebaseerd op .NET Standard.

  5. Geef geen versie op voor Microsoft.AspNetCore.App of Microsoft.AspNetCore.All wanneer u .NET Core 2.1+ gebruikt, omdat de .NET SDK automatisch de juiste versie selecteert. (Opmerking: dit werkt alleen bij het richten op .NET Core 2.1 als het project ook Microsoft.NET.Sdk.Web gebruikt. Dit probleem is opgelost in de .NET Core 2.2 SDK.)

  6. Als u wilt dat de waarschuwing verdwijnt, kunt u deze ook uitschakelen:

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