.NET 5+에서 사용되지 않는 기능
.NET 5부터 사용되지 않는 것으로 새로 표시되는 일부 API는 ObsoleteAttribute에서 두 개의 새 속성을 사용합니다.
ObsoleteAttribute.DiagnosticId 속성은 사용자 지정 진단 ID를 사용하여 빌드 경로를 생성하도록 컴파일러에 알립니다. 사용자 지정 ID를 사용하면 사용되지 않음 경고를 별도로 표시하지 않을 수 있습니다. .NET 5+ 사용되지 않음에서 사용자 지정 진단 ID의 형식은
SYSLIB0XXX
입니다.ObsoleteAttribute.UrlFormat 속성은 사용되지 않음에 대한 자세한 정보를 제공하는 URL 링크를 포함하도록 컴파일러에 알립니다.
사용되지 않는 API 사용으로 인해 빌드 경고나 오류가 발생하면 참조 섹션에 나열된 진단 ID에 대해 제공되는 특정 지침을 따르세요. 이러한 사용되지 않음에 대한 경고나 오류는 사용되지 않는 형식이나 멤버에 대한 표준 진단 ID(CS0618)를 사용하여 표시하지 않을 수 ‘없으며’, 사용자 지정 SYSLIB0XXX
진단 ID를 대신 사용해야 합니다. 자세한 내용은 경고 표시 안 함을 참조하세요.
참조
다음 표에서는 .NET 5+의 SYSLIB0XXX
사용되지 않음에 대한 인덱스를 제공합니다.
진단 ID | 경고 또는 오류 | 설명 |
---|---|---|
SYSLIB0001 | Warning | UTF-7 인코딩은 안전하지 않으므로 사용해서는 안 됩니다. 대신 UTF-8을 사용하세요. |
SYSLIB0002 | Error | PrincipalPermissionAttribute는 런타임에 적용되지 않으며 사용해서는 안 됩니다. |
SYSLIB0003 | Warning | CAS(코드 액세스 보안)가 런타임에 지원되거나 적용되지 않습니다. |
SYSLIB0004 | Warning | CER(제약이 있는 실행 영역) 기능이 지원되지 않습니다. |
SYSLIB0005 | Warning | GAC(전역 어셈블리 캐시)가 지원되지 않습니다. |
SYSLIB0006 | Warning | Thread.Abort()이 지원되지 않으며 PlatformNotSupportedException을 throw합니다. |
SYSLIB0007 | Warning | 이 암호화 알고리즘의 기본 구현이 지원되지 않습니다. |
SYSLIB0008 | Warning | CreatePdbGenerator() API가 지원되지 않으며 PlatformNotSupportedException을 throw합니다. |
SYSLIB0009 | Warning | AuthenticationManager은 지원되지 않습니다. 메서드는 작동하지 않거나 PlatformNotSupportedException을 throw합니다. |
SYSLIB0010 | Warning | 일부 원격 API가 지원되지 않으며 PlatformNotSupportedException을 throw합니다. |
SYSLIB0011 | Warning | BinaryFormatter serialization이 사용되지 않으며 사용해서는 안 됩니다. |
SYSLIB0012 | Warning | Assembly.CodeBase 및 Assembly.EscapedCodeBase은 .NET Framework 호환성을 위해서만 포함됩니다. 대신 Assembly.Location를 사용하세요. |
SYSLIB0013 | Warning | Uri.EscapeUriString(String)은 경우에 따라 Uri 문자열을 손상할 수 있습니다. 쿼리 문자열 구성 요소에 대신 Uri.EscapeDataString(String)을 사용하세요. |
SYSLIB0014 | Warning | WebRequest, HttpWebRequest, ServicePoint, WebClient는 더 이상 사용되지 않습니다. 대신 HttpClient를 사용하세요. |
SYSLIB0015 | Warning | DisablePrivateReflectionAttribute는 .NET 6 이상에 영향을 주지 않습니다. |
SYSLIB0016 | Warning | 더 나은 성능과 더 적은 할당을 위해 인수를 받는 Graphics.GetContextInfo 오버로드를 사용하세요. |
SYSLIB0017 | Warning | 강력한 이름 서명은 지원되지 않으며 PlatformNotSupportedException을 throw합니다. |
SYSLIB0018 | Warning | 리플렉션 전용 로드는 지원되지 않으며 PlatformNotSupportedException을 throw합니다. |
SYSLIB0019 | Warning | System.Runtime.InteropServices.RuntimeEnvironment 멤버 SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid), GetRuntimeInterfaceAsObject(Guid, Guid)는 더 이상 지원되지 않으며 PlatformNotSupportedException을 throw합니다. |
SYSLIB0020 | Warning | JsonSerializerOptions.IgnoreNullValues는 사용되지 않습니다. 직렬화할 때 null 값을 무시하려면 DefaultIgnoreCondition을 JsonIgnoreCondition.WhenWritingNull으로 설정하세요. |
SYSLIB0021 | Warning | 파생된 암호화 형식은 더 이상 사용되지 않습니다. 대신 기본 형식의 Create 메서드를 사용합니다. |
SYSLIB0022 | Warning | Rijndael 및 RijndaelManaged 형식은 사용되지 않습니다. 대신 Aes를 사용하세요. |
SYSLIB0023 | Warning | RNGCryptoServiceProvider는 사용되지 않습니다. 난수를 생성하려면 RandomNumberGenerator 정적 메서드 중 하나를 대신 사용합니다. |
SYSLIB0024 | Warning | AppDomains 생성 및 언로드는 지원되지 않으며 예외를 throw합니다. |
SYSLIB0025 | Warning | SuppressIldasmAttribute는 .NET 6 이상에 영향을 주지 않습니다. |
SYSLIB0026 | Warning | X509Certificate 및 X509Certificate2는 변경할 수 없습니다. 적절한 생성자를 사용하여 새 인증서를 만듭니다. |
SYSLIB0027 | Warning | PublicKey.Key는 사용되지 않습니다. 적절한 메서드를 사용하여 GetRSAPublicKey()와 같은 퍼블릭 키를 가져옵니다. |
SYSLIB0028 | Warning | X509Certificate2.PrivateKey는 사용되지 않습니다. 적절한 메서드를 사용하여 프라이빗 키(예: RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2))를 가져오거나, X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) 메서드를 사용하여 프라이빗 키로 새 인스턴스를 만듭니다. |
SYSLIB0029 | Warning | ProduceLegacyHmacValues 는 사용되지 않습니다. 레거시 HMAC 값 생성은 더 이상 지원되지 않습니다. |
SYSLIB0030 | Warning | HMACSHA1 은 항상 플랫폼에서 제공하는 알고리즘 구현을 사용합니다. useManagedSha1 매개 변수 없이 생성자를 사용합니다. |
SYSLIB0031 | Warning | CryptoConfig.EncodeOID(String)는 사용되지 않습니다. System.Formats.Asn1에 제공된 ASN.1 기능을 사용합니다. |
SYSLIB0032 | Warning | 손상된 프로세스 상태 예외에서 복구하는 기능은 지원되지 않음, HandleProcessCorruptedStateExceptionsAttribute는 무시됩니다. |
SYSLIB0033 | Warning | Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[])는 사용되지 않으며 지원되지 않습니다. 대신 PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[])를 사용하세요. |
SYSLIB0034 | Warning | CmsSigner(CspParameters)는 사용되지 않습니다. 대신 대체 생성자를 사용합니다. |
SYSLIB0035 | Warning | SignerInfo.ComputeCounterSignature()는 사용되지 않습니다. 대신 CmsSigner를 수락하는 오버로드를 사용합니다. |
SYSLIB0036 | Warning | Regex.CompileToAssembly는 사용되지 않으며 지원되지 않습니다. 대신 정규식 소스 생성기와 함께 RegexGeneratorAttribute 를 사용하세요. |
SYSLIB0037 | Warning | AssemblyName 멤버 HashAlgorithm, ProcessorArchitecture 및 VersionCompatibility는 더 이상 사용되지 않으므로 지원되지 않습니다. |
SYSLIB0038 | Warning | SerializationFormat.Binary는 더 이상 사용되지 않으므로 사용하면 안 됩니다. |
SYSLIB0039 | Warning | TLS 버전 1.0 및 1.1에는 알려진 취약성이 있으므로 권장되지 않습니다. 대신 최신 TLS 버전을 사용하거나 SslProtocols.None을 사용하여 OS 기본값을 따릅니다. |
SYSLIB0040 | Warning | EncryptionPolicy.NoEncryption 및 EncryptionPolicy.AllowNoEncryption은 보안을 크게 저하시키므로 프로덕션 코드에 사용하면 안 됩니다. |
SYSLIB0041 | Warning | Rfc2898DeriveBytes 생성자의 기본 해시 알고리즘과 반복 횟수는 오래되었으며 안전하지 않습니다. 해시 알고리즘과 반복 횟수를 허용하는 생성자를 사용합니다. |
SYSLIB0042 | Warning | ToXmlString 및 FromXmlString 에는 ECC(타원 곡선 암호화) 형식이 구현되지 않았으며 더 이상 사용되지 않습니다. 공개 키에는 ExportSubjectPublicKeyInfo 또는 ImportSubjectPublicKeyInfo , 프라이빗 키에는 ExportPkcs8PrivateKey 또는 ImportPkcs8PrivateKey 와 같은 표준 가져오기 및 내보내기 형식을 사용합니다. |
SYSLIB0043 | Warning | ECDiffieHellmanPublicKey.ToByteArray() 및 관련 생성자는 모든 플랫폼에서 일관되고 상호 운용 가능한 구현을 갖고 있지 않습니다. 대신 ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo()를 사용하세요. |
SYSLIB0044 | Warning | AssemblyName.CodeBase 및 AssemblyName.EscapedCodeBase는 사용되지 않습니다. 어셈블리를 로드하는 데 사용하는 것은 지원되지 않습니다. |
SYSLIB0045 | Warning | 알고리즘 이름을 허용하는 암호화 팩터리 메서드는 더 이상 사용되지 않습니다. 대신 알고리즘 형식에 매개 변수가 없는 Create 팩터리 메서드를 사용합니다. |
SYSLIB0046 | Warning | ControlledExecution.Run(Action, CancellationToken) 메서드가 프로세스를 손상할 수 있으므로 프로덕션 코드에서 사용하면 안 됩니다. |
SYSLIB0047 | Warning | XmlSecureResolver는 사용되지 않습니다. XML 외부 엔터티 해결을 금지하려고 할 때 대신 XmlResolver.ThrowingResolver 를 사용합니다. |
SYSLIB0048 | Warning | RSA.EncryptValue(Byte[]) 및 RSA.DecryptValue(Byte[])는 사용되지 않습니다. 대신 RSA.Encrypt 및 RSA.Decrypt을 사용하세요. |
SYSLIB0049 | Warning | JsonSerializerOptions.AddContext는 사용되지 않습니다. JsonSerializerContext를 등록하려면 TypeInfoResolver 또는 TypeInfoResolverChain 속성을 사용합니다. |
SYSLIB0050 | Warning | 포맷터 기반 serialization은 사용되지 않으며 사용해서는 안 됩니다. |
SYSLIB0051 | Warning | 사용되지 않는 포맷터 기반 serialization을 지원하는 API는 사용되지 않습니다. 애플리케이션 코드에서 호출하거나 확장해서는 안 됩니다. |
SYSLIB0052 | Warning | Regex 확장성을 위해 사용되지 않는 메커니즘을 지원하는 API는 사용되지 않습니다. |
SYSLIB0053 | Warning | AesGcm은 암호화 및 암호 해독에 필요한 태그 크기를 나타내야 합니다. 태그 크기를 허용하는 생성자를 사용합니다. |
SYSLIB0054 | Warning | Thread.VolatileRead 및 Thread.VolatileWrite는 사용되지 않습니다. 대신 Volatile.Read 또는 Volatile.Write를 사용하십시오. |
SYSLIB0055 | Warning | 서명된 매개 변수가 있는 AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* 메서드는 더 이상 사용되지 않습니다. 대신 서명되지 않은 오버로드를 사용합니다. |
SYSLIB0056 | Warning | 사용자 지정 AssemblyHashAlgorithm 이(가) 있는 Assembly.LoadFrom 은(는) 사용되지 않습니다. AssemblyHashAlgorithm 이(가) 없이 오버로드를 사용합니다. |
SYSLIB0057 | Warning | 이진 및 파일 콘텐츠에 대한 X509Certificate2 및 X509Certificate 생성자는 더 이상 사용되지 않습니다. |
경고 표시 안 함
가능하면 항상 사용 가능한 해결 방법을 사용하는 것이 좋습니다. 그러나 코드를 변경할 수 없는 경우 #pragma
지시문 또는 <NoWarn>
프로젝트 설정을 통해 경고를 표시하지 않을 수 있습니다. 사용되지 않는 API를 사용해야 하고 SYSLIB0XXX
진단에서 오류로 표시되는 경우 코드 또는 프로젝트 파일에서 경고를 표시하지 않을 수 있습니다.
코드에서 경고를 표시하지 않으려면 다음을 수행합니다.
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
프로젝트 파일에서 경고를 표시하지 않으려면 다음을 수행합니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB0001 project-wide -->
<NoWarn>$(NoWarn);SYSLIB0001</NoWarn>
<!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
<NoWarn>$(NoWarn);SYSLIB0002</NoWarn>
<NoWarn>$(NoWarn);SYSLIB0003</NoWarn>
<!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
<NoWarn>$(NoWarn);SYSLIB0001;SYSLIB0002;SYSLIB0003</NoWarn>
</PropertyGroup>
</Project>
참고
이런 식으로 경고를 표시하지 않으면 지정한 사용하지 않음 경고만 사용하지 않도록 설정됩니다. 진단 ID가 다른 사용하지 않음 경고를 포함하여 다른 모든 경고는 사용하지 않도록 설정되지 않습니다.
참고 항목
.NET