APIs de nome forte lançam PlatformNotSupportedException
Algumas APIs que não são suportadas no .NET/.NET Core, mas não fizeram nada quando acessadas, foram alteradas para agora lançar um PlatformNotSupportedException em tempo de execução. Anteriormente, o uso dessas APIs acabaria resultando em uma exceção de tempo de execução mais adiante; A exceção agora é lançada quando o tipo é instanciado ou acessado pela primeira vez.
Comportamento anterior
Nas versões anteriores, chamar AssemblyName.KeyPair ou StrongNameKeyPair(Byte[]) era um no-op. Ligar StrongNameKeyPair(FileStream) leu o fluxo, mas de outra forma não fez nada.
Novo comportamento
A partir do .NET 6, cada uma das três APIs afetadas lança um PlatformNotSupportedException em tempo de execução.
Versão introduzida
.NET 6
Tipo de mudança de rutura
Essa alteração pode afetar a compatibilidade binária.
Razão para a alteração
Anteriormente, um aplicativo que chamava a API compilava e executava, mas assim que a instância era usada em qualquer caminho de código, ele lançava uma exceção em tempo de execução. Para tornar mais explícito que esse cenário não tem suporte, a lógica de lançamento de exceção foi movida para o construtor de instância. Caso nenhuma instância seja criada, a exceção também é lançada em pontos de entrada públicos que retornam esse tipo, ou seja, AssemblyName.KeyPair.
Ação recomendada
A assinatura de nome forte não é suportada no .NET/.NET Core e não há solução alternativa.
Nota
O .NET Core/5+ nunca verifica assinaturas em seu tempo de execução. No entanto, se você estiver direcionando bibliotecas entre plataformas (por exemplo, um pacote de autenticação básico destinado ao .NET Standard 2.0, portanto, ele também é executado no .NET Framework), a nomenclatura forte é uma boa ideia para compatibilidade entre tempos de execução. O .NET Framework continua a impor nomenclatura forte se o aplicativo de chamada tiver nome forte. Você pode fazer assemblies de nome forte em todas as versões do .NET usando a ferramenta Sn.exe . Para obter mais informações, consulte Assinatura de nome forte.