로드할 런타임 버전 결정
공용 언어 런타임에서는 다음 정보를 사용하여 응용 프로그램을 위해 로드할 런타임 버전을 결정합니다.
사용할 수 있는 런타임 버전
응용 프로그램이 지원하는 런타임 버전
지원되는 런타임 버전
런타임에서는 응용 프로그램 구성 파일과 PE(이식 가능한 실행) 파일 헤더를 사용하여 응용 프로그램이 지원하는 런타임 버전을 확인합니다. 응용 프로그램 구성 파일이 없으면 런타임에서는 응용 프로그램의 PE 파일 헤더에 지정된 런타임 버전(사용 가능한 경우)을 로드합니다.
응용 프로그램 구성 파일이 있는 경우에는 다음 프로세스의 결과에 따라 로드할 런타임 버전을 결정합니다.
런타임은 응용 프로그램 구성 파일의 <supportedRuntime> 요소 요소를 확인합니다. <supportedRuntime> 요소에 지정되어 있는 지원되는 런타임 버전이 하나 이상 있으면 런타임은 첫 번째 <supportedRuntime> 요소에서 지정하는 런타임 버전을 로드합니다. 이 버전을 사용할 수 없으면 런타임은 다음 <supportedRuntime> 요소를 확인하고 지정된 런타임 버전을 로드하려고 시도합니다. 이 런타임 버전을 사용할 수 없으면 그 다음 <supportedRuntime> 요소를 확인합니다. 지정된 버전을 사용할 수 없으면 런타임은 런타임 버전을 로드하는 데 실패하고 사용자에게 메시지를 표시합니다(3단계 참조).
런타임은 응용 프로그램 실행 파일의 PE 파일 헤더를 읽습니다. PE 파일 헤더에 지정된 런타임 버전을 사용할 수 있으면 해당 버전을 로드합니다. 지정된 런타임 버전을 사용할 수 없으면 런타임은 PE 헤더의 런타임 버전과 호환된다고 Microsoft에서 확인한 런타임 버전을 검색합니다. 해당 버전을 찾을 수 없으면 프로세스는 3단계로 계속됩니다.
런타임은 응용 프로그램에서 지원하는 런타임 버전을 사용할 수 없다는 메시지를 표시합니다. 런타임은 로드되지 않습니다.
참고 레지스트리 키 HKLM\Software\Microsoft\.NETFramework에 있는 NoGuiFromShim 값을 사용하거나 환경 변수 COMPLUS_NoGuiFromShim을 사용하여 이 메시지가 표시되지 않게 할 수 있습니다.예를 들어, 무인 설치나 Windows 서비스 같이 일반적으로 사용자와 상호 작용을 하지 않는 응용 프로그램의 경우 이 메시지를 표시하지 않을 수 있습니다.이 메시지를 표시하지 않도록 설정하면 런타임은 이벤트 로그에 해당 메시지를 씁니다.컴퓨터에 있는 모든 응용 프로그램에 대해 이 메시지를 표시하지 않으려면 레지스트리 값 NoGuiFromShim을 1로 설정하고,특정한 사용자 컨텍스트에서 실행되는 응용 프로그램에 대해 이 메시지를 표시하지 않으려면 COMPLUS_NoGuiFromShim 환경 변수를 1로 설정합니다.
참고 |
---|
런타임 버전이 로드된 후에 어셈블리 바인딩 리디렉션을 통해 개별 .NET Framework 어셈블리의 다른 버전이 로드되도록 지정할 수 있습니다.이러한 바인딩 리디렉션은 리디렉션되는 특정 어셈블리에만 영향을 줍니다. |