Partilhar via


Obsolações 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 de quebra é específica para APIs que foram marcadas como obsoletas com uma ID de diagnóstico personalizada. Suprimir a 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.

Alterar a descrição

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

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

ID de diagnóstico Description Gravidade
SYSLIB0013 Uri.EscapeUriString(String) pode corromper a cadeia de caracteres URI em alguns casos. Em vez disso, considere usar Uri.EscapeDataString(String) para componentes de cadeia de caracteres de consulta. Aviso
SYSLIB0014 WebRequest, HttpWebRequest, ServicePoint, e WebClient são obsoletas. Utilize HttpClient em substituição. Aviso
SYSLIB0015 DisablePrivateReflectionAttribute não tem efeito no .NET 6+. Aviso
SYSLIB0016 Use as Graphics.GetContextInfo sobrecargas que aceitam argumentos para um melhor desempenho e menos alocações. Aviso
SYSLIB0017 A assinatura de nome forte não é suportada PlatformNotSupportedExceptione lança . Aviso
SYSLIB0018 O carregamento somente reflexo não é suportado PlatformNotSupportedExceptione lança . Aviso
SYSLIB0019 Os System.Runtime.InteropServices.RuntimeEnvironment membros SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid)e GetRuntimeInterfaceAsObject(Guid, Guid) não são mais apoiados e lançam PlatformNotSupportedException. Aviso
SYSLIB0020 JsonSerializerOptions.IgnoreNullValues está obsoleta. Para ignorar valores nulos durante a serialização, defina DefaultIgnoreCondition como JsonIgnoreCondition.WhenWritingNull. Aviso
SYSLIB0021 Os tipos criptográficos derivados são obsoletos. Em vez disso, use o Create método no tipo base. Aviso
SYSLIB0022 Os Rijndael e RijndaelManaged tipos são obsoletos. Utilize Aes em substituição. Aviso
SYSLIB0023 RNGCryptoServiceProvider está obsoleta. Para gerar um número aleatório, use um dos RandomNumberGenerator métodos estáticos. Aviso
SYSLIB0024 A criação e descarregamento de AppDomains não é suportada e gera 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 novo certificado. Aviso
SYSLIB0027 PublicKey.Key está obsoleta. Use o método apropriado para obter a chave pública, como GetRSAPublicKey(). Aviso
SYSLIB0028 X509Certificate2.PrivateKey está obsoleta. Use o método apropriado para obter a chave privada, como RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), ou use o X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) método para criar uma nova instância com uma chave privada. Aviso
SYSLIB0029 ProduceLegacyHmacValues está obsoleta. A produção de valores HMAC herdados não é mais suportada. Aviso
SYSLIB0030 HMACSHA1 utiliza sempre a implementação do algoritmo fornecido pela plataforma. Use um construtor sem o useManagedSha1 parâmetro. Aviso
SYSLIB0031 CryptoConfig.EncodeOID(String) está obsoleta. Use a funcionalidade ASN.1 fornecida em System.Formats.Asn1. Aviso
SYSLIB0032 Não há suporte para recuperação de exceções de estado de processo corrompido; HandleProcessCorruptedStateExceptionsAttribute é ignorada. Aviso
SYSLIB0033 Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) é obsoleta e não é suportada. Utilize PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) em substituição. Aviso
SYSLIB0034 CmsSigner(CspParameters) está obsoleta. Use um construtor alternativo em vez disso. Aviso
SYSLIB0035 SignerInfo.ComputeCounterSignature() está obsoleta. Use a sobrecarga que aceita um CmsSigner em vez disso. Aviso

Versão introduzida

.NET 6

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

  • Avisos ou erros para essas obsolescências não podem ser suprimidos usando o ID de diagnóstico padrão para tipos ou membros obsoletos; em vez disso, use o valor de ID de diagnóstico personalizado 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

Consulte também