일부 API는 .NET 7부터 사용되지 않는 것으로 표시되었습니다. 이 호환성을 깨는 변경은 사용자 지정 진단 ID과 더 이상 사용되지 않는 것으로 표시된
변경 내용 설명
이전 .NET 버전에서는 빌드 경고 없이 이러한 API를 사용할 수 있습니다. .NET 7 이상 버전에서 이러한 API를 사용하면 사용자 지정 진단 ID가 있는 컴파일 시간 경고 또는 오류가 생성됩니다. 사용자 지정 진단 ID를 사용하면 모든 노후화 경고를 일괄적으로 억제하는 대신 개별적으로 억제할 수 있습니다.
다음 표에서는 사용되지 않는 API에 대한 사용자 지정 진단 ID 및 해당 경고 메시지를 나열합니다.
진단 ID | 설명 | 심각도 |
---|---|---|
SYSLIB0036 |
Regex.CompileToAssembly는 사용되지 않으며 지원되지 않습니다. 대신 정규식 소스 생성기와 함께 RegexGeneratorAttribute 를 사용하세요. |
경고 |
SYSLIB0037 | AssemblyName 멤버 HashAlgorithm, ProcessorArchitecture 및 VersionCompatibility는 더 이상 사용되지 않으므로 지원되지 않습니다. | 경고 |
SYSLIB0038 | SerializationFormat.Binary는 더 이상 사용되지 않으므로 사용하면 안 됩니다. | 경고 |
SYSLIB0039 | TLS 버전 1.0 및 1.1에는 알려진 취약성이 있으므로 권장되지 않습니다. 대신 최신 TLS 버전을 사용하거나 SslProtocols.None을 사용하여 OS 기본값을 따릅니다. | 경고 |
SYSLIB0040 | EncryptionPolicy.NoEncryption 및 EncryptionPolicy.AllowNoEncryption은 보안을 크게 저하시키므로 프로덕션 코드에 사용하면 안 됩니다. | 경고 |
SYSLIB0041 | Rfc2898DeriveBytes 생성자의 기본 해시 알고리즘과 반복 횟수는 오래되었으며 안전하지 않습니다. 해시 알고리즘과 반복 횟수를 허용하는 생성자를 사용합니다. | 경고 |
SYSLIB0042 |
ToXmlString 및 FromXmlString 에는 ECC(타원 곡선 암호화) 형식이 구현되지 않았으며 더 이상 사용되지 않습니다. 공개 키에는 ExportSubjectPublicKeyInfo 또는 ImportSubjectPublicKeyInfo , 프라이빗 키에는 ExportPkcs8PrivateKey 또는 ImportPkcs8PrivateKey 와 같은 표준 가져오기 및 내보내기 형식을 사용합니다. |
경고 |
SYSLIB0043 | ECDiffieHellmanPublicKey.ToByteArray() 및 관련 생성자는 모든 플랫폼에서 일관되고 상호 운용 가능한 구현을 갖고 있지 않습니다. ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo()를 대신 사용하세요. | 경고 |
SYSLIB0044 | AssemblyName.CodeBase 및 AssemblyName.EscapedCodeBase는 사용되지 않습니다. | 경고 |
SYSLIB0045 | 알고리즘 이름을 허용하는 암호화 팩터리 메서드는 더 이상 사용되지 않습니다. 대신 알고리즘 형식에 매개 변수가 없는 Create 팩터리 메서드를 사용합니다. |
경고 |
SYSLIB0047 |
XmlSecureResolver는 구식입니다.
XmlResolver.ThrowingResolver 대신 외부 XML 리소스의 확인을 금지합니다. |
경고 |
도입된 버전
.NET 7
파괴적 변경 유형
이러한 사용되지 않음은 원본 호환성영향을 줄 수 있습니다.
권장 작업
경고에 제공된 URL 링크를 사용하여 각 진단 ID에 대해 제공된 특정 지침을 따릅니다.
이러한 폐기로 인한 경고나 오류는 사용되지 않는 형식이나 멤버에 대한 표준 진단 ID를 사용하여 억제할 수 없습니다. 대신 사용자 지정
SYSLIBxxxx
진단 ID 값을 사용하십시오.
영향을 받는 API
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)
SYSLIB0047
참고하십시오
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET