호환성은 각 .NET Framework 릴리스의 중요한 목표입니다. 호환성을 통해 각 버전이 추가되므로 이전 버전이 계속 작동합니다. 반면, 이전 기능(예: 성능 향상, 보안 문제 해결 또는 버그 수정)을 변경하면 기존 코드 또는 이후 버전에서 실행되는 기존 애플리케이션에서 호환성 문제가 발생할 수 있습니다.
각 앱은 다음을 통해 특정 버전의 .NET Framework를 대상으로 합니다.
- Visual Studio에서 대상 프레임워크 정의
- 프로젝트 파일에서 대상 프레임워크 지정
- TargetFrameworkAttribute 소스 코드에 적용
한 버전의 .NET Framework에서 다른 버전으로 마이그레이션하는 경우 고려해야 할 두 가지 유형의 변경 사항이 있습니다.
런타임 변경 사항
런타임 문제는 컴퓨터에 새 런타임이 배치되고 앱의 동작이 변경될 때 발생하는 문제입니다. 대상으로 지정된 버전보다 더 새로운 버전에서 실행될 때, .NET Framework는 특정한 동작을 사용하여 이전 대상 버전을 모방합니다. 앱은 최신 버전에서 실행되지만 이전 버전에서 실행되는 것처럼 작동합니다. .NET Framework 버전 간의 많은 호환성 문제는 이 기발한 모델을 통해 완화됩니다. 예를 들어 이진 파일이 .NET Framework 4.0용으로 컴파일되었지만 .NET Framework 4.5 이상이 있는 컴퓨터에서 실행되는 경우 .NET Framework 4.0 호환 모드에서 실행됩니다. 즉, 이후 버전의 많은 변경 내용이 이진 파일에 영향을 주지 않습니다.
애플리케이션이 대상으로 하는 .NET Framework 버전은 코드가 실행되는 애플리케이션 도메인에 대한 항목 어셈블리의 대상 버전에 따라 결정됩니다. 해당 애플리케이션 도메인에 로드된 모든 추가 어셈블리는 해당 버전을 대상으로 지정합니다. 예를 들어 실행 파일의 경우 실행 파일이 대상으로 하는 버전은 해당 애플리케이션 도메인의 모든 어셈블리가 실행되는 호환 모드입니다.
리타겟팅 변경사항
대상 다시 지정 변경은 어셈블리가 최신 버전을 대상으로 다시 컴파일될 때 발생하는 변경 내용입니다. 최신 버전을 대상으로 지정한다는 것은 어셈블리가 새 기능과 이전 기능에 대한 잠재적 호환성 문제를 옵트인한다는 것을 의미합니다.
영향 분류
런타임 및 대상 변경 내용(예: .NET Framework 4.8.x로 마이그레이션에 대한 대상 다시 지정 변경)을 설명하는 문서에서 개별 항목은 다음과 같이 예상된 영향으로 분류됩니다.
중대
많은 수의 앱에 영향을 주거나 코드를 대폭 수정해야 하는 중요한 변경 내용입니다.
사소한
적은 수의 앱에 영향을 주거나 코드를 약간 수정해야 하는 변경 내용입니다.
에지 케이스
일반적이지 않은 매우 구체적인 시나리오에서 앱에 영향을 주는 변경 내용입니다.
투명
앱의 개발자 또는 사용자에게 눈에 띄는 영향을 주지 않는 변경 내용입니다. 이 변경으로 인해 앱을 수정할 필요가 없습니다.
참고하십시오
.NET