Obsolescências de API com IDs de diagnóstico não padrão

Algumas APIs foram marcadas como obsoletas, começando no .NET 5. Essa alteração interruptiva é específica para APIs que foram marcadas como obsoletas com uma ID de diagnóstico personalizada. A supressão da ID de diagnóstico de obsolescência padrão, que é CS0618 para o compilador C#, não suprime os avisos que o compilador gera quando essas APIs são usadas.

Descrição das alterações

Nas versões anteriores do .NET, essas APIs podem ser usadas sem qualquer aviso de build. No .NET 5 e em versões posteriores, o uso dessas APIs produz um aviso ou um erro de tempo de compilação com uma ID de diagnóstico personalizada. O uso de IDs de diagnóstico personalizadas permite suprimir os avisos de obsolescência individualmente, em vez de suprimir todos eles.

A tabela a seguir lista as IDs de diagnóstico personalizadas e suas mensagens de aviso correspondentes para as APIs obsoletas.

ID do diagnóstico Descrição Severidade
SYSLIB0001 A codificação UTF-7 não é segura e não deve ser usada. Em vez disso, considere usar a UTF-8. Aviso
SYSLIB0002 PrincipalPermissionAttribute não é corroborado pelo runtime e não deve ser usado. Erro
SYSLIB0003 A CAS (segurança de acesso do código) não tem suporte nem é corroborada pelo runtime. Aviso
SYSLIB0004 Não há suporte para o recurso CER (região de execução restrita). Aviso
SYSLIB0005 Não há suporte para GAC (cache de assembly global). Aviso
SYSLIB0006 Thread.Abort() não é compatível e lança PlatformNotSupportedException. Aviso
SYSLIB0007 Não há suporte para a implementação padrão desse algoritmo de criptografia. Aviso
SYSLIB0008 A API CreatePdbGenerator() não é compatível e lança PlatformNotSupportedException. Aviso
SYSLIB0009 Os métodos AuthenticationManager.Authenticate e AuthenticationManager.PreAuthenticate não são compatíveis e lançam PlatformNotSupportedException. Aviso
SYSLIB0010 Algumas APIs de comunicação remota não são compatíveis e lançam PlatformNotSupportedException. Aviso
SYSLIB0011 A serialização de BinaryFormatter está obsoleta e não deve ser usada. Aviso
SYSLIB0012 Assembly.CodeBase e Assembly.EscapedCodeBase são incluídos apenas para compatibilidade com o .NET Framework. Use Assembly.Location em vez disso. Aviso

Versão introduzida

.NET 5.0

  • Siga as diretrizes específicas fornecidas para cada ID de diagnóstico usando o link de URL fornecido no aviso.

  • Os avisos ou os erros relacionados a essas obsolescências não podem ser suprimidos usando a ID de diagnóstico padrão para tipos obsoletos ou membros. Use o valor personalizado da ID de diagnóstico SYSLIBxxxx.

APIs afetadas

SYSLIB0001

SYSLIB0002

SYSLIB0003

Classes no namespace System.Security.Permissions:

Classes que derivam de CodeAccessSecurityAttribute:

Interfaces:

Classes que implementam IStackWalk:

Classes que implementam IPermission:

Classes que derivam de CodeAccessPermission:

Classes que derivam de ResourcePermissionBase:

Enumerações no namespace System.Security.Permissions:

Classes e membros que dependem de tipos de segurança de acesso ao código:

SYSLIB0004

SYSLIB0005

SYSLIB0006

SYSLIB0007

SYSLIB0008

SYSLIB0009

SYSLIB0010

SYSLIB0011

SYSLIB0012

Confira também