.NET SDK usa un grafico RID più piccolo
I progetti destinati a .NET 8 o versioni successive ora usano un grafico con identificatore di runtime "portabile" più piccolo.
Comportamento precedente
.NET SDK ha usato un grafico RID complesso per determinare gli asset durante la compilazione o la pubblicazione di un progetto.
Nuovo comportamento
A partire da .NET 8, .NET SDK usa un grafico più piccolo costituito solo da RID portabili, per i progetti destinati a .NET 8 o versione successiva. Ciò significa che l'SDK non riconosce i RID specifici della versione o della distribuzione per impostazione predefinita. È possibile che venga visualizzato l'errore seguente (o simile) quando si compila il progetto:
errore NETSDK1083: runtimeIdentifier specificato 'win10-x64' non riconosciuto. Per altre informazioni, vedere https://aka.ms/netsdk1083.
Versione introdotta
.NET 8 RC 1
Tipo di modifica che causa un'interruzione
Questa è una modifica comportamentale e può influire anche sulla compatibilità dell'origine.
Motivo della modifica
Il grafico RID era costoso da gestire e comprendere, richiedendo che .NET stesso fosse in grado di riconoscere la distribuzione in modo fragile. Il team .NET e la community dedicano una quantità di tempo non indifferente all'aggiornamento del grafico e al backporting di tali aggiornamenti alle versioni precedenti. L'obiettivo a lungo termine è interrompere l'aggiornamento del grafico RID, interrompere la lettura e infine rimuoverlo. Questa modifica che causa un'interruzione è un passo verso tale obiettivo.
Azione consigliata
Usare i RID portabili, ad esempio , linux-musl-<arch>
osx-<arch>
linux-<arch>
, e win-<arch>
, anziché i RID specifici della versione o della distribuzione, ad esempio ubuntu.16.04-<arch>
, osx.10.11-<arch>
e .win10-<arch>
Se si specifica il RID usando la proprietà MSBuild RuntimeIdentifier nel file di progetto (*.csproj, *.vbproj o *.fsproj), modificarlo di conseguenza. Ad esempio, passare <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
a <RuntimeIdentifier>win-x64</RuntimeIdentifier>
nel file di progetto:
<PropertyGroup>
...
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
Se si specifica rid come argomento della riga di comando, apportare una modifica simile. Ad esempio, anziché dotnet publish --framework net8.0 --runtime win10-x64
, usare il comando dotnet publish --framework net8.0 --runtime win-x64
.
Se è necessario ripristinare il comportamento precedente che prevedeva l’uso del grafico RID completo precedente, è possibile impostare la UseRidGraph
proprietà MSBuild su true
nel file di progetto. Tuttavia, il grafico RID precedente non verrà aggiornato in futuro per tentare di gestire altre distribuzioni o architetture.
<PropertyGroup>
<UseRidGraph>true</UseRidGraph>
</PropertyGroup>