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

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>

Vedi anche