다음을 통해 공유


프로세스에 공용 언어 런타임 로드

업데이트: 2007년 11월

호스트에서 공용 언어 런타임을 로드하고 초기화해야만 관리 코드가 실행될 수 있는데 프로세스에 런타임이 아직 실행되지 않는 상태에서는 모든 호스트가 관리되지 않는 스텁으로 시작됩니다. .NET Framework에서는 호스트에서 런타임을 시작하는 데 사용할 수 있는 호스팅 API라고 하는 관리되지 않는 API 집합을 제공합니다. 자세한 내용은 호스팅 인터페이스를 참조하십시오.

런타임을 프로세스에 로드하기 위해 호스트는 CorBindToRuntimeEx 함수 함수를 호출합니다. CorBindToRuntimeEx 함수의 프로토타입은 Windows SDK(소프트웨어 개발 키트)의 Include 디렉터리에 있는 Mscoree.h에서 찾을 수 있습니다. 호스트는 CorBindToRuntimeEx 함수를 사용하여 로드할 런타임의 버전과 가비지 수집 및 어셈블리 로딩과 같은 기본 함수의 동작을 제어합니다.다음 표는 호스트에서 설정 가능한 값에 대해 설명합니다.

설명

동시 가비지 수집

가비지 수집을 배경 스레드에서 실행할지 아니면 사용자 코드를 실행하는 스레드에서 실행할지 여부를 지정합니다.

로더 최적화

어셈블리가 도메인 중립적인 방법으로 로드할지 여부를 제어합니다. 어셈블리를 도메인 중립적인 방법으로 로드하면 해당 프로세스 내의 모든 응용 프로그램 도메인에서 JIT 컴파일된 어셈블리 코드 및 읽기 전용 런타임 데이터 구조를 공유할 수 있습니다.

자세한 내용은 응용 프로그램 도메인과 어셈블리를 참조하십시오.

서버 대 워크스테이션

런타임의 워크스테이션 빌드("wks")와 서버 빌드("svr") 중 어느 것을 로드할지를 지정합니다.

버전

프로세스에 로드할 런타임의 버전을 지정합니다. 버전 1.0을 로드하려면 "v1.0.3705"를 사용하고, 버전 1.1을 로드하려면 "v1.1.4322"를 사용하며. 버전 2.0을 로드하려면 "v2.0.50727"을 사용합니다. 한 프로세스에서 한 가지 버전의 런타임만 로드할 수 있습니다.

자세한 내용은 Side-by-Side 실행을 참조하십시오.

CorBindToRuntimeEx 함수는 세 개의 추가 매개 변수를 사용합니다. ICLRRuntimeHost 인터페이스가 들어 있는 개체의 CLSID인 CLSID_CLRRuntimeHost, 이 인터페이스의 IID인 IID_ICLRRuntimeHost 및 ICLRRuntimeHost 포인터를 받는 [out] 매개 변수가 이에 해당합니다.

참고:

버전 1.0과 1.1의 경우 CLSID_CorRuntimeHost와 IID_ICorRuntimeHost를 사용하여 ICorRuntimeHost 인터페이스를 얻습니다.

ICLRRuntimeHost를 사용하면 런타임을 시작하고, 관리 코드를 실행하고, 공용 언어 런타임에 의해 구현된 관리자에 액세스하는 데 사용할 수 있는 ICLRControl 인터페이스에 대한 포인터를 가져올 수 있습니다. 또한 IHostControl 인터페이스를 구현하는 호스트 컨트롤 개체를 등록할 수 있습니다. 공용 언어 런타임에서는 IHostControl를 호출하여 호스트가 구현하는 관리자를 확인합니다.

참고 항목

개념

관리 호스팅 코드로의 전환

참조

AppDomainSetup

CorBindToRuntimeEx 함수

ICLRRuntimeHost

ICLRControl

기타 리소스

공용 언어 런타임 호스팅