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:
Wanneer u zich richt op .NET Core of .NET Standard, kunt u expliciete verwijzingen naar
Microsoft.NETCore.App
ofNETStandard.Library
in uw projectbestand voorkomen.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.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.Voeg niet expliciet verwijzingen toe of werk ze bij naar
Microsoft.NETCore.App
NETSTandard.Library
.NET Framework-projecten. NuGet installeert automatisch elke versie van u die u nodig hebt bij het gebruik van een NuGet-pakket op basis vanNETStandard.Library
.NET Standard.Geef geen versie op voor
Microsoft.AspNetCore.App
ofMicrosoft.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 gebruiktMicrosoft.NET.Sdk.Web
. Dit probleem is opgelost in de .NET Core 2.2 SDK.)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>