버전 호환성

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

앱의 버전 호환성

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

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

<configuration>
   <startup>
      <supportedRuntime version="v2.0.50727" />
      <supportedRuntime version="v4.0" />
   </startup>
</configuration>

자세한 내용은 방법: NET Framework 4 또는 4.x를 지원하도록 앱 구성을 참조하세요.

구성 요소의 버전 호환성

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

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

이전 버전과의 호환성

.NET Framework 4.5 이상 버전은 이전 버전의 .NET Framework로 빌드된 앱과 호환됩니다. 즉, 이전 버전으로 빌드된 앱과 구성 요소는 수정하지 않아도 .NET Framework 4.5 이상 버전에서 작동합니다. 그러나 앱은 기본적으로 해당 앱을 위해 개발된 공용 언어 런타임 버전에서 실행되기 때문에 .NET Framework 4.5 이상 버전에서 앱을 실행하려면 구성 파일을 제공해야 할 수 있습니다. 자세한 내용은 이 문서 앞부분의 앱의 버전 호환성 섹션을 참조하십시오.

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

앱이나 구성 요소가 .NET Framework 4.5 또는 이후 버전에서 제대로 작동하지 않는 경우 다음 검사 목록을 사용합니다.

Side-by-Side 실행

문제에 대한 적합한 해결 방법을 찾지 못한 경우 .NET Framework 4.5(또는 해당 포인트 릴리스 중 하나)가 버전 1.1, 2.0 및 3.5와 side-by-side 실행된다는 것과 버전 4를 대체하는 내부 업데이트임을 기억하세요. 버전 1.1, 2.0 및 3.5를 대상으로 하는 앱의 경우 대상 컴퓨터에 적절한 .NET Framework 버전을 설치하여 앱을 가장 적합한 환경에서 실행할 수 있습니다. Side-by-Side 실행에 대한 자세한 내용은 Side-by-Side 실행을 참조하십시오.

참조