다음을 통해 공유


기본이 아닌 진단 ID가 있는 API 폐기됨

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

변경 내용 설명

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

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

진단 ID 설명 심각도
SYSLIB0001 UTF-7 인코딩은 안전하지 않으므로 사용해서는 안 됩니다. 대신 UTF-8을 사용하세요. 경고
SYSLIB0002 PrincipalPermissionAttribute는 런타임에 적용되지 않으며 사용해서는 안 됩니다. 오류
SYSLIB0003 CAS(코드 액세스 보안)가 런타임에 지원되거나 적용되지 않습니다. 경고
SYSLIB0004 CER(제약이 있는 실행 영역) 기능이 지원되지 않습니다. 경고
SYSLIB0005 GAC(전역 어셈블리 캐시)가 지원되지 않습니다. 경고
SYSLIB0006 Thread.Abort()이 지원되지 않으며 PlatformNotSupportedException을 throw합니다. 경고
SYSLIB0007 이 암호화 알고리즘의 기본 구현이 지원되지 않습니다. 경고
SYSLIB0008 CreatePdbGenerator() API가 지원되지 않으며 PlatformNotSupportedException을 throw합니다. 경고
SYSLIB0009 AuthenticationManager.AuthenticateAuthenticationManager.PreAuthenticate 메서드는 지원되지 않으며, PlatformNotSupportedException 예외를 발생시킵니다. 경고
SYSLIB0010 일부 원격 API가 지원되지 않으며 PlatformNotSupportedException을 던집니다. 경고
SYSLIB0011 BinaryFormatter serialization은 구식이며 사용해서는 안 됩니다. 경고
SYSLIB0012 Assembly.CodeBaseAssembly.EscapedCodeBase은 .NET Framework 호환성을 위해서만 포함됩니다. Assembly.Location를 대신 사용하세요. 경고

도입된 버전

.NET 5.0

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

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

영향을 받는 API

SYSLIB0001

SYSLIB0002

SYSLIB0003

네임스페이스 System.Security.Permissions의 클래스:

CodeAccessSecurityAttribute에서 파생되는 클래스:

인터페이스:

다음을 구현 IStackWalk하는 클래스:

다음을 구현 IPermission하는 클래스:

CodeAccessPermission에서 파생되는 클래스:

ResourcePermissionBase에서 파생되는 클래스:

네임스페이스 System.Security.Permissions의 열거형:

코드 액세스 보안 형식에 의존하는 클래스 및 멤버:

SYSLIB0004

SYSLIB0005

SYSLIB0006

SYSLIB0007

SYSLIB0008

SYSLIB0009

SYSLIB0010

SYSLIB0011

SYSLIB0012

참고하십시오