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-waarschuwing NETSDK1071, wordt voorgesteld dat er in de toekomst mogelijk een versieconflict is 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 de TargetFramework versies automatisch een versie van de metapackage binnenbrengt, 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 of werk ze bij naar Microsoft.NETCore.AppNETSTandard.Library .NET Framework-projecten. NuGet installeert automatisch elke versie van u die u nodig hebt bij het gebruik van een NuGet-pakket op basis van NETStandard.Library .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 van .NET Core 2.1 als het project ook wordt gebruikt Microsoft.NET.Sdk.Web. 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>