Compartilhar via


Obsolescências de API com IDs de diagnóstico não padrão (.NET 6)

Algumas APIs foram marcadas como obsoletas, começando no .NET 6. 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 6 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
SYSLIB0013 Uri.EscapeUriString(String) pode corromper a cadeia de caracteres URI em alguns casos. Em vez disso, considere usar Uri.EscapeDataString(String) para os componentes da cadeia de caracteres de consulta. Aviso
SYSLIB0014 WebRequest, HttpWebRequest, ServicePoint e WebClient estão obsoletos. Use HttpClient em vez disso. Aviso
SYSLIB0015 DisablePrivateReflectionAttribute não tem efeito no .NET 6+. Aviso
SYSLIB0016 Para melhor desempenho e menos alocações, use as sobrecargas de Graphics.GetContextInfo que aceitam argumentos. Aviso
SYSLIB0017 A assinatura de nome forte não é compatível e lança PlatformNotSupportedException. Aviso
SYSLIB0018 O carregamento somente por reflexão não é compatível e lança PlatformNotSupportedException. Aviso
SYSLIB0019 Os membros de System.Runtime.InteropServices.RuntimeEnvironmentSystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid) e GetRuntimeInterfaceAsObject(Guid, Guid) – não têm mais suporte e lançam PlatformNotSupportedException. Aviso
SYSLIB0020 JsonSerializerOptions.IgnoreNullValues é obsoleto. Para ignorar valores nulos ao serializar, defina DefaultIgnoreCondition como JsonIgnoreCondition.WhenWritingNull. Aviso
SYSLIB0021 Os tipos criptográficos derivados são obsoletos. Em vez disso, use o método Create no tipo base. Aviso
SYSLIB0022 Os tipos Rijndael e RijndaelManaged estão obsoletos. Use Aes em vez disso. Aviso
SYSLIB0023 RNGCryptoServiceProvider é obsoleto. Para gerar um número aleatório, em vez disso use um dos métodos estáticos de RandomNumberGenerator. Aviso
SYSLIB0024 Criar e descarregar AppDomains não é compatível e lança uma exceção. Aviso
SYSLIB0025 SuppressIldasmAttribute não tem efeito no .NET 6+. Aviso
SYSLIB0026 X509Certificate e X509Certificate2 são imutáveis. Use o construtor apropriado para criar um certificado. Aviso
SYSLIB0027 PublicKey.Key é obsoleto. Use o método apropriado para obter a chave pública, como GetRSAPublicKey(). Aviso
SYSLIB0028 X509Certificate2.PrivateKey é obsoleto. Use o método apropriado para obter a chave privada, como RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), ou use o método X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) para criar uma instância com uma chave privada. Aviso
SYSLIB0029 ProduceLegacyHmacValues é obsoleto. Não há mais suporte para a produção de valores HMAC herdados. Aviso
SYSLIB0030 HMACSHA1 sempre usa a implementação de algoritmos fornecida pela plataforma. Use um construtor sem o parâmetro useManagedSha1. Aviso
SYSLIB0031 CryptoConfig.EncodeOID(String) é obsoleto. Use a funcionalidade ASN.1 fornecida em System.Formats.Asn1. Aviso
SYSLIB0032 Não há suporte para a recuperação de exceções de estado de processo corrompido; HandleProcessCorruptedStateExceptionsAttribute é ignorado. Aviso
SYSLIB0033 Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) é obsoleto e não compatível. Use PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) em vez disso. Aviso
SYSLIB0034 CmsSigner(CspParameters) é obsoleto. Em vez disso, use um construtor alternativo. Aviso
SYSLIB0035 SignerInfo.ComputeCounterSignature() é obsoleto. Em vez disso, use a sobrecarga que aceita um CmsSigner. Aviso

Versão introduzida

.NET 6

  • 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

SYSLIB0013

SYSLIB0014

SYSLIB0015

SYSLIB0016

SYSLIB0017

SYSLIB0018

SYSLIB0019

SYSLIB0020

SYSLIB0021

SYSLIB0022

SYSLIB0023

SYSLIB0024

SYSLIB0025

SYSLIB0026

SYSLIB0027

SYSLIB0028

SYSLIB0029

SYSLIB0030

SYSLIB0031

SYSLIB0032

SYSLIB0033

SYSLIB0034

SYSLIB0035

Confira também