RID padrão usado ao direcionar o .NET Framework
No .NET 8, foi introduzida uma alteração para usar uma grafia de identificador de tempo de execução (RID) menor ao almejar net8.0
e versões posteriores.
No entanto, isso causou problemas para os clientes que trabalham com múltiplas plataformas no .NET e .NET Framework. Isso ocorre porque a restauração acontece uma vez, mas o projeto .NET Framework tenta usar o padrão RID antigo e o projeto .NET (Core) tenta usar o novo gráfico RID reduzido.
Para habilitar este cenário de multi-alvo, um RID padrão compatível com o novo gráfico RID agora está a ser utilizado neste cenário.
Versão introduzida
.NET 9 GA
Comportamento anterior
Projetos no estilo SDK destinados ao .NET Framework sem RID definido padronizados como win7-x86
ou win7-x64
.
Novo comportamento
Projetos no estilo SDK destinados ao .NET Framework sem RID definem como padrão win-x86
ou win-x64
.
Tipo de mudança de rutura
Essa alteração pode afetar compatibilidade da fonte.
Motivo da mudança
Os aplicativos .NET Framework estavam recebendo um RID padrão que era incompatível com o gráfico RID portátil. Essa incompatibilidade resultou em um erro de restauração:
Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): erro NETSDK1047: O ficheiro de recursos 'D:\1\s\artifacts\obj\MSBuild\project.assets.json' não possui um alvo para 'net472/win7-x64'. Certifique-se de que a restauração foi executada e que você incluiu 'net472' no TargetFrameworks para seu projeto. Você também pode precisar incluir 'win7-x64' nos RuntimeIdentifiers do seu projeto. [MSBuild.csproj::TargetFramework=net472]>
Para obter mais informações, consulte dotnet/sdk issue #35575.
Ação recomendada
Se você for afetado por essa alteração, escolha uma das seguintes ações:
Atualize seu identificador de tempo de execução para um valor suportado pelo gráfico RID portátil. Exemplo de arquivo de 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,
dotnet publish --runtime win-x64
.Volte para o gráfico RID antigo definindo
UseRidGraph
paratrue
no arquivo de projeto:<PropertyGroup> <UseRidGraph>true</UseRidGraph> </PropertyGroup>
APIs afetadas
Nenhuma.