O SDK do .NET usa um gráfico RID menor
Projetos destinados ao .NET 8 ou versões posteriores agora usam um gráfico menor de identificador de tempo de execução (RID) "portátil".
Comportamento anterior
O SDK .NET usou um gráfico RID complexo para determinar ativos ao criar ou publicar um projeto.
Novo comportamento
A partir do .NET 8, o SDK do .NET usa um gráfico menor que consiste apenas em RIDs portáteis, para projetos destinados ao .NET 8 ou a uma versão posterior. Isso significa que o SDK não reconhecerá RIDs específicos da versão ou da distribuição por padrão. Você pode ver o seguinte erro (ou semelhante) ao criar seu projeto:
erro NETSDK1083: O RuntimeIdentifier especificado 'win10-x64' não é reconhecido. Consulte https://aka.ms/netsdk1083 para obter mais informações.
Versão introduzida
.NET 8 RC 1
Tipo de mudança de rutura
Esta alteração é uma mudança comportamental e também pode afetar a compatibilidade da fonte.
Razão para a alteração
O gráfico RID era caro para manter e entender, exigindo que o próprio .NET estivesse ciente da distro de uma maneira frágil. A equipe do .NET e a comunidade gastam uma quantidade não trivial de tempo atualizando o gráfico e fazendo backporting dessas atualizações para versões anteriores. O objetivo a longo prazo é parar de atualizar o gráfico RID, parar de lê-lo e, eventualmente, removê-lo. Esta mudança revolucionária é um passo em direção a esse objetivo.
Ação recomendada
Use RIDs portáteis, por exemplo, , , , e , em win-<arch>
vez de RIDs específicos da versão ou da distribuição, como ubuntu.16.04-<arch>
, osx.10.11-<arch>
e win10-<arch>
. osx-<arch>
linux-musl-<arch>
linux-<arch>
Se você especificar o RID usando a propriedade RuntimeIdentifier MSBuild em seu arquivo de projeto (*.csproj, *.vbproj ou *.fsproj), altere-o de acordo. Por exemplo, altere <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
para no arquivo de <RuntimeIdentifier>win-x64</RuntimeIdentifier>
projeto:
<PropertyGroup>
...
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
Se você especificar o RID como um argumento de linha de comando, faça uma alteração semelhante. Por exemplo, em vez de dotnet publish --framework net8.0 --runtime win10-x64
, use o comando dotnet publish --framework net8.0 --runtime win-x64
.
Se você precisar reverter para o comportamento anterior de usar o gráfico RID antigo e completo, você pode definir a UseRidGraph
propriedade MSBuild como true
em seu arquivo de projeto. No entanto, o gráfico RID antigo não será atualizado no futuro para tentar lidar com outras distribuições ou arquiteturas.
<PropertyGroup>
<UseRidGraph>true</UseRidGraph>
</PropertyGroup>