.NET SDK maakt gebruik van een kleinere RID-grafiek
Projecten die gericht zijn op .NET 8 of hoger, gebruiken nu een kleinere RID-grafiek (Portable Runtime Identifier).
Vorig gedrag
De .NET SDK heeft een complexe RID-grafiek gebruikt om assets te bepalen bij het bouwen of publiceren van een project.
Nieuw gedrag
Vanaf .NET 8 gebruikt de .NET SDK een kleinere grafiek die bestaat uit alleen draagbare RID's voor projecten die gericht zijn op .NET 8 of een latere versie. Dit betekent dat de SDK standaard geen versiespecifieke of distributiespecifieke RID's herkent. Mogelijk ziet u de volgende fout (of vergelijkbaar) wanneer u uw project bouwt:
fout NETSDK1083: de opgegeven RuntimeIdentifier 'win10-x64' wordt niet herkend. Zie https://aka.ms/netsdk1083 voor meer informatie.
Versie geïntroduceerd
.NET 8 RC 1
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging en kan ook van invloed zijn op de broncompatibiliteit.
Reden voor wijziging
De RID-grafiek was kostbaar om te onderhouden en te begrijpen, waardoor .NET zelf op een kwetsbare manier op een kwetsbare manier moet worden distro-aware. Het .NET-team en de community besteden een niet-triviale hoeveelheid tijd aan het bijwerken van de grafiek en het backporteren van dergelijke updates naar eerdere releases. Het langetermijndoel is het bijwerken van de RID-grafiek te stoppen, te stoppen met lezen en uiteindelijk te verwijderen. Deze belangrijke wijziging is een stap naar dat doel.
Aanbevolen actie
Gebruik draagbare RID's, bijvoorbeeld linux-<arch>
, linux-musl-<arch>
, osx-<arch>
en win-<arch>
, in plaats van versiespecifieke of distributiespecifieke RID's, zoals ubuntu.16.04-<arch>
, osx.10.11-<arch>
en win10-<arch>
.
Als u de RID opgeeft met behulp van de eigenschap RuntimeIdentifier MSBuild in uw projectbestand (*.csproj, *.vbproj of *.fsproj), wijzigt u deze dienovereenkomstig. Ga bijvoorbeeld naar <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
het <RuntimeIdentifier>win-x64</RuntimeIdentifier>
projectbestand:
<PropertyGroup>
...
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
Als u de RID opgeeft als opdrachtregelargument, moet u een soortgelijke wijziging aanbrengen. Gebruik bijvoorbeeld de opdracht dotnet publish --framework net8.0 --runtime win-x64
in plaats van dotnet publish --framework net8.0 --runtime win10-x64
.
Als u wilt terugkeren naar het vorige gedrag van het gebruik van de oude, volledige RID-grafiek, kunt u de UseRidGraph
eigenschap true
MSBuild instellen op in uw projectbestand. De oude RID-grafiek wordt in de toekomst echter niet bijgewerkt om andere distributies of architecturen af te handelen.
<PropertyGroup>
<UseRidGraph>true</UseRidGraph>
</PropertyGroup>