.NET Framework의 버전 호환성

업데이트: 2010년 8월

이전 버전과의 호환성은 특정 버전의 플랫폼용으로 개발된 응용 프로그램이 해당 플랫폼의 다음 버전에서도 실행되는 것을 뜻합니다. .NET Framework에서는 이전 버전과의 호환성을 최대한 지원하려고 합니다. 한 버전의 .NET Framework용으로 작성된 소스 코드는 다음 버전의 .NET Framework에서 컴파일되어야 하며 한 버전의 .NET Framework에서 실행되는 이진 파일은 다음 버전의 .NET Framework에서 동일하게 작동해야 합니다.

응용 프로그램의 버전 호환성

기본적으로 응용 프로그램은 빌드에 사용된 .NET Framework 버전에서 실행됩니다. 해당 버전이 없고 응용 프로그램 구성 파일에 지원되는 버전이 정의되지 않은 경우 .NET Framework 초기화 오류가 발생할 수 있습니다. 이 경우 응용 프로그램을 실행하려고 하면 실패합니다.

응용 프로그램이 실행되는 특정 버전을 정의하려면 하나 이상의 <supportedRuntime> 요소를 응용 프로그램의 구성 파일에 추가합니다. 각 <supportedRuntime> 요소에는 지원되는 런타임 버전이 나열됩니다. 우선 순위가 가장 높은 버전이 처음에 지정되고 우선 순위가 가장 낮은 버전이 마지막에 지정됩니다.

구성 요소의 버전 호환성

응용 프로그램은 자신이 실행되는 .NET Framework 버전을 제어할 수 있지만 구성 요소는 제어할 수 없습니다. 구성 요소 및 클래스 라이브러리는 특정 응용 프로그램의 컨텍스트에서 로드되므로 응용 프로그램이 실행되는 .NET Framework 버전에서 자동으로 실행됩니다.

이러한 제한 사항 때문에 구성 요소에서 호환성 보장은 특히 중요합니다. .NET Framework 버전 4를 사용하면 System.Runtime.Versioning.ComponentGuaranteesAttribute 특성을 해당 구성 요소에 적용하여 구성 요소가 여러 버전 간 호환성을 유지해야 하는 정도를 지정할 수 있습니다. 여러 도구에서는 이 특성을 사용하여 이후 버전의 구성 요소에서 호환성 보장을 잠재적으로 위반할 수 있는 가능성을 검색할 수 있습니다.

이전 버전과의 호환성과 .NET Framework 4

.NET Framework 4는 .NET Framework 버전 1.1, 2.0, 3.0 및 3.5로 빌드된 응용 프로그램의 이전 버전과 호환됩니다. 즉, 이전 버전의 .NET Framework로 빌드된 응용 프로그램과 구성 요소는 .NET Framework 4에서 작동합니다.

그러나 실제 상황에서 .NET Framework의 외견상 중요하지 않은 변경 사항 및 프로그래밍 기술 변경 사항에 의해 이 호환성이 손상될 수 있습니다. 예를 들어 .NET Framework 4의 성능 향상 기능이 이전 버전에서 발생하지 않은 경합 상태를 발생시킬 수 있습니다. 마찬가지로 .NET Framework 어셈블리에 하드 코드된 경로 사용, 특정 버전의 .NET Framework와 같음 비교 수행, 리플렉션을 사용한 전용 필드 값 가져오기는 이전 버전과 호환되지 않습니다. 또한 각 .NET Framework 버전에는 일부 응용 프로그램 및 구성 요소의 호환성에 영향을 줄 수 있는 버그 수정 내용 및 보안 관련 변경 사항이 포함되어 있습니다.

따라서 .NET Framework 응용 프로그램 및 구성 요소를 테스트하여 .NET Framework 응용 프로그램 및 구성 요소가 다른 .NET Framework 버전과 호환되는지 확인해야 합니다. 응용 프로그램 및 구성 요소가 .NET Framework 4에서 성공적으로 실행되는지 확인하려면 .NET Framework 4 Application Compatibility Walkthrough를 참조하십시오.

응용 프로그램 및 구성 요소가 .NET Framework 4에서 제대로 작동하지 않는 경우 다음 검사 목록을 사용하십시오.

.NET Framework 2.0, 3.0 및 3.5 응용 프로그램의 경우

  • .NET Framework 4 마이그레이션 문제에서 응용 프로그램에 영향을 줄 수 있는 변경 내용을 확인하고 설명된 해결 방법을 적용하십시오.

  • .NET Framework 4에서 실행하기 위해 기존 소스 코드를 다시 컴파일하거나 기존 소스 코드 기반의 .NET Framework 4를 대상으로 하는 새 버전의 응용 프로그램 또는 구성 요소를 개발하는 경우 .NET Framework의 사용되지 않는 기능에서 사용되지 않는 형식과 멤버를 확인하고 설명된 해결 방법을 적용하십시오. 이전에 컴파일된 코드는 사용되지 않는 것으로 표시된 형식과 멤버에 대해 계속해서 실행됩니다.

  • .NET Framework 4가 변경되어 응용 프로그램이 손상된 것으로 확인된 경우 런타임 설정 스키마에서 이전 동작을 복원하기 위해 응용 프로그램 구성 파일의 런타임 설정을 사용할 수 있는지 확인하십시오.

  • 문서화되지 않은 문제가 발생한 경우 Microsoft Connect에 버그를 등록하고 해당 버그 번호로 netfxcf@microsoft.com에 문의하십시오.

.NET Framework 1.1 응용 프로그램의 경우

  • .NET Framework 4 마이그레이션 문제에서 응용 프로그램에 영향을 줄 수 있는 변경 내용을 확인하고 설명된 해결 방법을 적용하십시오.

  • 해당 버전의 변경 내용은 Changes in .NET Framework 3.5 SP1Changes in .NET Framework 2.0을 참조하십시오.

  • .NET Framework 4에서 실행하기 위해 기존 소스 코드를 다시 컴파일하거나 기존 소스 코드 기반의 .NET Framework 4를 대상으로 하는 새 버전의 응용 프로그램 또는 구성 요소를 개발하는 경우 .NET Framework의 사용되지 않는 기능에서 사용되지 않는 형식과 멤버를 확인하고 설명된 해결 방법을 적용하십시오. 이전에 컴파일된 코드는 사용되지 않는 것으로 표시된 형식과 멤버에 대해 계속해서 실행됩니다.

  • .NET Framework 4가 변경되어 응용 프로그램이 손상된 것으로 확인된 경우 런타임 설정 스키마에서 이전 동작을 복원하기 위해 응용 프로그램 구성 파일의 런타임 설정을 사용할 수 있는지 확인하십시오.

  • 문서화되지 않은 문제가 발생한 경우 Microsoft Connect에 버그를 등록하고 해당 버그 번호로 netfxcf@microsoft.com에 문의하십시오.

호환성 및 Side-by-Side 실행

문제에 적합한 해결 방법을 찾지 못한 경우 .NET Framework 4가 버전 1.1, 2.0 및 3.5와 side by side 실행된다는 사실을 기억하십시오. 대상 컴퓨터에 적절한 .NET Framework 버전을 설치하여 응용 프로그램을 가장 적합한 환경에서 실행할 수 있습니다. side-by-side 실행에 대한 자세한 내용은 Side-by-Side 실행을 참조하십시오.

참고 항목

개념

.NET Framework 4의 새로운 기능

기타 리소스

.NET Framework의 사용되지 않는 기능

Microsoft .NET Framework 지원 기간 정책

.NET Framework 4 마이그레이션 문제

변경 기록

날짜

변경 내용

이유

2010년 8월

지원되는 .NET Framework 버전이 설치되지 않은 경우 .NET Framework 초기화 오류가 발생할 수 있습니다.

콘텐츠 버그 수정