다음을 통해 공유


기본이 아닌 진단 ID가 있는 API 사용 중지(.NET 7)

일부 API는 .NET 7부터 사용되지 않는 것으로 표시되었습니다. 이 호환성을 깨는 변경은 사용자 지정 진단 ID과 더 이상 사용되지 않는 것으로 표시된 API에 특정됩니다. C# 컴파일러의 기본 사용되지 않는 진단 ID인 CS0618을 억제하더라도, 해당 API를 사용할 때 컴파일러가 생성하는 경고는 억제되지 않습니다.

변경 내용 설명

이전 .NET 버전에서는 빌드 경고 없이 이러한 API를 사용할 수 있습니다. .NET 7 이상 버전에서 이러한 API를 사용하면 사용자 지정 진단 ID가 있는 컴파일 시간 경고 또는 오류가 생성됩니다. 사용자 지정 진단 ID를 사용하면 모든 노후화 경고를 일괄적으로 억제하는 대신 개별적으로 억제할 수 있습니다.

다음 표에서는 사용되지 않는 API에 대한 사용자 지정 진단 ID 및 해당 경고 메시지를 나열합니다.

진단 ID 설명 심각도
SYSLIB0036 Regex.CompileToAssembly는 사용되지 않으며 지원되지 않습니다. 대신 정규식 소스 생성기와 함께 RegexGeneratorAttribute를 사용하세요. 경고
SYSLIB0037 AssemblyName 멤버 HashAlgorithm, ProcessorArchitectureVersionCompatibility는 더 이상 사용되지 않으므로 지원되지 않습니다. 경고
SYSLIB0038 SerializationFormat.Binary는 더 이상 사용되지 않으므로 사용하면 안 됩니다. 경고
SYSLIB0039 TLS 버전 1.0 및 1.1에는 알려진 취약성이 있으므로 권장되지 않습니다. 대신 최신 TLS 버전을 사용하거나 SslProtocols.None을 사용하여 OS 기본값을 따릅니다. 경고
SYSLIB0040 EncryptionPolicy.NoEncryptionEncryptionPolicy.AllowNoEncryption은 보안을 크게 저하시키므로 프로덕션 코드에 사용하면 안 됩니다. 경고
SYSLIB0041 Rfc2898DeriveBytes 생성자의 기본 해시 알고리즘과 반복 횟수는 오래되었으며 안전하지 않습니다. 해시 알고리즘과 반복 횟수를 허용하는 생성자를 사용합니다. 경고
SYSLIB0042 ToXmlStringFromXmlString에는 ECC(타원 곡선 암호화) 형식이 구현되지 않았으며 더 이상 사용되지 않습니다. 공개 키에는 ExportSubjectPublicKeyInfo 또는 ImportSubjectPublicKeyInfo, 프라이빗 키에는 ExportPkcs8PrivateKey 또는 ImportPkcs8PrivateKey와 같은 표준 가져오기 및 내보내기 형식을 사용합니다. 경고
SYSLIB0043 ECDiffieHellmanPublicKey.ToByteArray() 및 관련 생성자는 모든 플랫폼에서 일관되고 상호 운용 가능한 구현을 갖고 있지 않습니다. ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo()를 대신 사용하세요. 경고
SYSLIB0044 AssemblyName.CodeBaseAssemblyName.EscapedCodeBase는 사용되지 않습니다. 경고
SYSLIB0045 알고리즘 이름을 허용하는 암호화 팩터리 메서드는 더 이상 사용되지 않습니다. 대신 알고리즘 형식에 매개 변수가 없는 Create 팩터리 메서드를 사용합니다. 경고
SYSLIB0047 XmlSecureResolver는 구식입니다. XmlResolver.ThrowingResolver 대신 외부 XML 리소스의 확인을 금지합니다. 경고

도입된 버전

.NET 7

파괴적 변경 유형

이러한 사용되지 않음은 원본 호환성영향을 줄 수 있습니다.

  • 경고에 제공된 URL 링크를 사용하여 각 진단 ID에 대해 제공된 특정 지침을 따릅니다.

  • 이러한 폐기로 인한 경고나 오류는 사용되지 않는 형식이나 멤버에 대한 표준 진단 ID를 사용하여 억제할 수 없습니다. 대신 사용자 지정 SYSLIBxxxx 진단 ID 값을 사용하십시오.

영향을 받는 API

SYSLIB0036

SYSLIB0037

SYSLIB0038

SYSLIB0039

SYSLIB0040

SYSLIB0041

SYSLIB0042

SYSLIB0043

SYSLIB0045

SYSLIB0047

참고하십시오