Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Algunas API se han marcado como obsoletas a partir de .NET 7. Este cambio importante es específico de las API que se han marcado como obsoletas con un identificador de diagnóstico personalizado. Suprimir el identificador de diagnóstico de obsolescencia predeterminado, que es CS0618 para el compilador de C#, no suprime las advertencias que genera el compilador cuando se usan estas API.
Descripción del cambio
En versiones anteriores de .NET, estas API se pueden usar sin ninguna advertencia de compilación. En .NET 7 y versiones posteriores, el uso de estas API genera una advertencia o error en tiempo de compilación con un identificador de diagnóstico personalizado. El uso de identificadores de diagnóstico personalizados permite suprimir las advertencias de obsolescencia individualmente en lugar de suprimir todas las advertencias de obsolescencia.
En la tabla siguiente se enumeran los identificadores de diagnóstico personalizados y sus mensajes de advertencia correspondientes para las API obsoletas.
Id. de diagnóstico | Descripción | Severidad |
---|---|---|
SYSLIB0036 |
Regex.CompileToAssembly está obsoleto y no se admite. Use RegexGeneratorAttribute en su lugar con el generador de origen de expresiones regulares. |
Advertencia |
SYSLIB0037 | Los miembros AssemblyName, HashAlgorithm, ProcessorArchitecture y VersionCompatibility se consideran obsoletos y no se admiten. | Advertencia |
SYSLIB0038 | SerializationFormat.Binary está obsoleto y no debe usarse. | Advertencia |
SYSLIB0039 | Las versiones 1.0 y 1.1 de TLS tienen vulnerabilidades conocidas y no se recomiendan. En su lugar, use una versión de TLS más reciente, o bien SslProtocols.None para aplazar los valores predeterminados del sistema operativo. | Advertencia |
SYSLIB0040 | EncryptionPolicy.NoEncryption y EncryptionPolicy.AllowNoEncryption reducen significativamente la seguridad y no deben usarse en el código de producción. | Advertencia |
SYSLIB0041 | El algoritmo hash predeterminado y los recuentos de iteración en los constructores Rfc2898DeriveBytes están obsoletos y son inseguros. Use un constructor que acepte el algoritmo hash y el número de iteraciones. | Advertencia |
SYSLIB0042 |
ToXmlString y FromXmlString no tienen ninguna implementación para los tipos de criptografía de curva elíptica (ECC) y están obsoletos. Use un formato de importación y exportación estándar, como ExportSubjectPublicKeyInfo o ImportSubjectPublicKeyInfo para claves públicas, o bien ExportPkcs8PrivateKey o ImportPkcs8PrivateKey para claves privadas. |
Advertencia |
SYSLIB0043 | ECDiffieHellmanPublicKey.ToByteArray() y el constructor asociado no tienen ninguna implementación coherente e interoperable en todas las plataformas. En su lugar, use ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo(). | Advertencia |
SYSLIB0044 | AssemblyName.CodeBase y AssemblyName.EscapedCodeBase están obsoletos. | Advertencia |
SYSLIB0045 | Los Factory Methods criptográficos que aceptan un nombre de algoritmo están obsoletos. En su lugar, use el Factory Method Create sin parámetros en el tipo de algoritmo. |
Advertencia |
SYSLIB0047 |
XmlSecureResolver está obsoleto. Use XmlResolver.ThrowingResolver en su lugar para prohibir la resolución de recursos XML externos. |
Advertencia |
Versión introducida
.NET 7
Tipo de cambio disruptivo
Estas obsolescencias pueden afectar a la compatibilidad con orígenes de datos.
Acción recomendada
Siga las instrucciones específicas proporcionadas para cada identificador de diagnóstico mediante el vínculo URL proporcionado en la advertencia.
Las advertencias o los errores de estas obsolescencias no pueden suprimirse mediante el identificador de diagnóstico estándar para tipos o miembros obsoletos; use el valor del identificador de diagnóstico
SYSLIBxxxx
personalizado en su lugar.
Las APIs afectadas
SYSLIB0036
SYSLIB0037
SYSLIB0038
SYSLIB0039
SYSLIB0040
- System.Net.Security.EncryptionPolicy.AllowNoEncryption
- System.Net.Security.EncryptionPolicy.NoEncryption
SYSLIB0041
- Rfc2898DeriveBytes(String, Byte[])
- Rfc2898DeriveBytes(String, Int32)
- Rfc2898DeriveBytes(Byte[], Byte[], Int32)
- Rfc2898DeriveBytes(String, Byte[], Int32)
- Rfc2898DeriveBytes(String, Int32, Int32)
SYSLIB0042
- System.Security.Cryptography.ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.FromXmlString(String)
- System.Security.Cryptography.ECDiffieHellmanCngPublicKey.ToXmlString()
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToXmlString()
- System.Security.Cryptography.ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- System.Security.Cryptography.ECDsaCng.ToXmlString(ECKeyXmlFormat)
SYSLIB0043
- System.Security.Cryptography.ECDiffieHellmanPublicKey.ToByteArray()
- ECDiffieHellmanPublicKey(Byte[])
SYSLIB0045
- System.Security.Cryptography.Aes.Create(String)
- System.Security.Cryptography.AsymmetricAlgorithm.Create(String)
- System.Security.Cryptography.DES.Create(String)
- System.Security.Cryptography.ECDiffieHellman.Create(String)
- System.Security.Cryptography.ECDsa.Create(String)
- System.Security.Cryptography.HashAlgorithm.Create(String)
- System.Security.Cryptography.KeyedHashAlgorithm.Create(String)
- System.Security.Cryptography.RandomNumberGenerator.Create(String)
- System.Security.Cryptography.RC2.Create(String)
- System.Security.Cryptography.Rijndael.Create(String)
- System.Security.Cryptography.RSA.Create(String)
- System.Security.Cryptography.SHA1.Create(String)
- System.Security.Cryptography.SHA256.Create(String)
- System.Security.Cryptography.SHA384.Create(String)
- System.Security.Cryptography.SHA512.Create(String)
- System.Security.Cryptography.SymmetricAlgorithm.Create(String)
- System.Security.Cryptography.TripleDES.Create(String)