Share via


.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.

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-x64in 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>

Zie ook