기본이 아닌 진단 ID를 사용하는 API 사용되지 않음(.NET 7)

일부 API는 .NET 7부터 사용되지 않는 것으로 표시되었습니다. 이러한 호환성이 손상되는 변경은 ‘사용자 지정 진단 ID’를 사용하여 사용되지 않는 것으로 표시된 API에만 적용됩니다. C# 컴파일러에 대한 기본 사용되지 않음 진단 ID인 CS0618을 표시하지 않아도 이러한 API를 사용할 때 컴파일러에서 생성되는 경고는 표시됩니다.

변경 내용 설명

이전 .NET 버전에서는 빌드 경고 없이 이러한 API를 사용할 수 있습니다. .NET 7 및 이후 버전에서 이러한 API를 사용하면 사용자 지정 진단 ID를 사용하는 컴파일 시간 경고 또는 오류가 발생합니다. 사용자 지정 진단 ID를 사용하면 모든 사용되지 않음 경고를 완전히 표시하지 않는 대신 사용되지 않음 경고를 개별적으로 표시하지 않을 수 있습니다.

다음 표에는 사용되지 않는 API에 대한 사용자 지정 진단 ID와 해당 경고 메시지가 나열되어 있습니다.

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

도입된 버전

.NET 7

호환성이 손상되는 변경의 형식

이러한 사용 중단은 원본 호환성에 영향을 줄 수 있습니다.

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

  • 이러한 사용되지 않음에 대한 경고나 오류는 사용되지 않는 형식이나 멤버에 대한 표준 진단 ID를 사용하여 표시하지 않을 수 없으며, 사용자 지정 SYSLIBxxxx 진단 ID 값을 대신 사용해야 합니다.

영향을 받는 API

SYSLIB0036

SYSLIB0037

SYSLIB0038

SYSLIB0039

SYSLIB0040

SYSLIB0041

SYSLIB0042

SYSLIB0043

SYSLIB0045

SYSLIB0047

참고 항목