API-obsoletioner med diagnostik-ID:n som inte är standard (.NET 7)
Vissa API:er har markerats som föråldrade, med början i .NET 7. Den här icke-bakåtkompatibla ändringen är specifik för API:er som har markerats som föråldrade med ett anpassat diagnostik-ID. Om du utelämnar standarddiagnostik-ID för obsoletion, som är CS0618 för C#-kompilatorn, undertrycks inte de varningar som kompilatorn genererar när dessa API:er används.
Ändra beskrivning
I tidigare .NET-versioner kan dessa API:er användas utan någon byggvarning. I .NET 7 och senare versioner ger användningen av dessa API:er en kompileringstidsvarning eller ett fel med ett anpassat diagnostik-ID. Med anpassade diagnostik-ID:n kan du ignorera obsoletionsvarningarna individuellt i stället för att dölja alla obsoletionsvarningar.
I följande tabell visas anpassade diagnostik-ID:n och deras motsvarande varningsmeddelanden för föråldrade API:er.
Diagnostik-ID | beskrivning | Allvarlighetsgrad |
---|---|---|
SYSLIB0036 | Regex.CompileToAssembly är föråldrad och stöds inte. Använd RegexGeneratorAttribute med källgeneratorn för reguljära uttryck i stället. |
Varning |
SYSLIB0037 | AssemblyName medlemmar HashAlgorithm, ProcessorArchitectureoch VersionCompatibility är föråldrade och stöds inte. | Varning |
SYSLIB0038 | SerializationFormat.Binary är föråldrad och bör inte användas. | Varning |
SYSLIB0039 | TLS-versionerna 1.0 och 1.1 har kända säkerhetsrisker och rekommenderas inte. Använd en nyare TLS-version i stället, eller använd SslProtocols.None för att skjuta upp till OS-standardvärden. | Varning |
SYSLIB0040 | EncryptionPolicy.NoEncryption och EncryptionPolicy.AllowNoEncryption avsevärt minska säkerheten och bör inte användas i produktionskoden. | Varning |
SYSLIB0041 | Standard-hash-algoritmen och iterationsantalet i Rfc2898DeriveBytes konstruktorer är inaktuella och osäkra. Använd en konstruktor som accepterar hash-algoritmen och antalet iterationer. | Varning |
SYSLIB0042 | ToXmlString och FromXmlString har ingen implementering för elliptiska kurvkryptografityper (ECC) och är föråldrade. Använd ett standardformat för import och export, till exempel ExportSubjectPublicKeyInfo eller ImportSubjectPublicKeyInfo för offentliga nycklar, eller ExportPkcs8PrivateKey ImportPkcs8PrivateKey för privata nycklar. |
Varning |
SYSLIB0043 | ECDiffieHellmanPublicKey.ToByteArray() och den associerade konstruktorn har inte någon konsekvent och driftskompatibel implementering på alla plattformar. Använd ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() i stället. | Varning |
SYSLIB0044 | AssemblyName.CodeBase och AssemblyName.EscapedCodeBase är föråldrade. | Varning |
SYSLIB0045 | Kryptografiska fabriksmetoder som accepterar ett algoritmnamn är föråldrade. Använd metoden parameterlös Create fabrik på algoritmtypen i stället. |
Varning |
SYSLIB0047 | XmlSecureResolver är föråldrad. Använd XmlResolver.ThrowingResolver i stället för att förbjuda upplösning av externa XML-resurser. |
Varning |
Version introducerad
.NET 7
Typ av icke-bakåtkompatibel ändring
Dessa obsoletioner kan påverka källkompatibiliteten.
Rekommenderad åtgärd
Följ den specifika vägledning som ges för varje diagnostik-ID med hjälp av URL-länken som anges i varningen.
Varningar eller fel för dessa obsoletioner kan inte ignoreras med hjälp av standarddiagnostik-ID:t för föråldrade typer eller medlemmar. använd det anpassade
SYSLIBxxxx
diagnostik-ID-värdet i stället.
Berörda API:er
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)