Partilhar via


Obsolações de API com IDs de diagnóstico não padrão (.NET 7)

Algumas APIs foram marcadas como obsoletas, começando no .NET 7. 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 7 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
SYSLIB0036 Regex.CompileToAssembly está obsoleta e não é suportada. Em vez disso, use RegexGeneratorAttribute com o gerador de fonte de expressão regular. Aviso
SYSLIB0037 AssemblyName membros HashAlgorithm, ProcessorArchitecturee VersionCompatibility são obsoletos e não suportados. Aviso
SYSLIB0038 SerializationFormat.Binary é obsoleta e não deve ser utilizada. Aviso
SYSLIB0039 As versões 1.0 e 1.1 do TLS têm vulnerabilidades conhecidas e não são recomendadas. Em vez disso, use uma versão mais recente do TLS ou use SslProtocols.None para adiar para os padrões do sistema operacional. Aviso
SYSLIB0040 EncryptionPolicy.NoEncryption e EncryptionPolicy.AllowNoEncryption reduzir significativamente a segurança e não deve ser usado no código de produção. Aviso
SYSLIB0041 O algoritmo de hash padrão e as contagens de iteração em Rfc2898DeriveBytes construtores estão desatualizados e inseguros. Use um construtor que aceite o algoritmo de hash e o número de iterações. Aviso
SYSLIB0042 ToXmlString e FromXmlString não têm implementação para tipos de criptografia de curva elíptica (ECC) e são obsoletos. Use um formato padrão de importação e exportação, como ExportSubjectPublicKeyInfo ou ImportSubjectPublicKeyInfo para chaves públicas e ExportPkcs8PrivateKey /ou ImportPkcs8PrivateKey para chaves privadas. Aviso
SYSLIB0043 ECDiffieHellmanPublicKey.ToByteArray() e o construtor associado não tem uma implementação consistente e interoperável em todas as plataformas. Utilize ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() em substituição. Aviso
SYSLIB0044 AssemblyName.CodeBase e AssemblyName.EscapedCodeBase são obsoletas. Aviso
SYSLIB0045 Os métodos criptográficos de fábrica que aceitam um nome de algoritmo são obsoletos. Em vez disso, use o método de fábrica sem Create parâmetros no tipo de algoritmo. Aviso
SYSLIB0047 XmlSecureResolver está obsoleta. Em vez disso, use XmlResolver.ThrowingResolver para proibir a resolução de recursos XML externos. Aviso

Versão introduzida

.NET 7

Tipo de mudança de rutura

Essas obsolações podem afetar a compatibilidade da fonte.

  • 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

SYSLIB0036

SYSLIB0037

SYSLIB0038

SYSLIB0039

SYSLIB0040

SYSLIB0041

SYSLIB0042

SYSLIB0043

SYSLIB0045

SYSLIB0047

Consulte também