네이티브 이미지 서비스
네이티브 이미지 서비스는 네이티브 이미지를 생성하고 유지하는 Windows 서비스입니다. 네이티브 이미지 서비스를 사용하면 개발자는 네이티브 이미지의 설치 및 업데이트를 컴퓨터가 유휴 상태일 때로 지연시킬 수 있습니다.
일반적으로 네이티브 이미지 서비스는 응용 프로그램 또는 업데이트의 설치 프로그램(설치 관리자)으로 시작되며, 우선 순위 3 작업의 경우 컴퓨터의 유휴 시간 동안 실행됩니다. 이 서비스는 상태를 저장하며 필요한 경우 여러 번 다시 부팅하더라도 계속될 수 있습니다. 또한 여러 개의 이미지 컴파일을 큐에 대기시킬 수 있습니다.
이 서비스는 수동 Ngen.exe 명령과도 상호 작용합니다. 수동 명령은 백그라운드 동작보다 우선 순위가 높습니다.
참고 |
---|
Windows Vista에서 네이티브 이미지 서비스에 대해 표시되는 이름은 "Microsoft.NET Framework NGEN v2.0.50727_X86" 또는 "Microsoft.NET Framework NGEN v2.0.50727_X64"입니다.모든 이전 버전의 Microsoft Windows에서 해당 이름은 ".NET Runtime Optimization Service v2.0.50727_X86" 또는 ".NET Runtime Optimization Service v2.0.50727_X64"입니다. |
지연된 작업 시작
설치 또는 업그레이드를 시작하기 전에 서비스를 일시 중지하는 것이 좋습니다. 이렇게 하면 설치 관리자가 파일을 복사하거나 어셈블리를 전역 어셈블리 캐시에 저장하는 동안 서비스가 실행되지 않습니다. 다음 Ngen.exe 명령줄은 서비스를 일시 중지합니다.
ngen queue pause
지연된 모든 작업이 큐에 대기 중이면 다음 명령을 사용하여 서비스를 다시 시작할 수 있습니다.
ngen queue continue
새 응용 프로그램을 설치하거나 공유 구성 요소를 업데이트할 때 네이티브 이미지 생성을 지연시키려면 install 또는 update 작업과 함께 /queue 옵션을 사용합니다. 다음 Ngen.exe 명령줄은 공유 구성 요소에 대한 네이티브 이미지를 설치하고 영향을 받았을 수 있는 모든 루트의 업데이트를 수행합니다.
ngen install MyComponent /queue
ngen update /queue
update 작업은 MyComponent를 사용하는 네이티브 이미지뿐만 아니라 무효화된 모든 네이티브 이미지도 다시 생성합니다.
응용 프로그램이 여러 개의 루트로 구성된 경우 지연된 작업의 우선 순위를 제어할 수 있습니다. 다음 명령은 세 개의 루트에 대한 설치를 큐에 대기시킵니다. Assembly1은 유휴 시간을 기다리지 않고 먼저 설치되고 Assembly2도 유휴 시간을 기다리지 않고 설치되지만 우선 순위 1인 작업이 모두 완료된 다음에 설치됩니다. Assembly3은 서비스가 컴퓨터의 유휴 상태를 감지하면 설치됩니다.
ngen install Assembly1 /queue:1
ngen install Assembly2 /queue:2
ngen install Assembly3 /queue:3
executeQueuedItems 작업을 사용하여 큐에 대기 중인 작업이 동기적으로 발생하도록 할 수 있습니다. 선택적 우선 순위를 제공하면 이 작업은 큐에 대기 중인 작업 중 우선 순위가 낮거나 같은 작업에만 영향을 줍니다. 기본 우선 순위는 3이므로 다음 Ngen.exe 명령은 큐에 대기 중인 모든 작업을 즉시 처리하고 완료될 때까지 반환하지 않습니다.
ngen executeQueuedItems
동기적 명령은 Ngen.exe로 실행되며 네이티브 이미지 서비스를 사용하지 않습니다. 네이티브 이미지 서비스를 실행하는 동안 Ngen.exe를 사용하여 작업을 실행할 수 있습니다.
서비스 종료
/queue 옵션을 포함하는 Ngen.exe 명령을 실행하여 서비스를 시작한 다음에는 모든 작업이 완료될 때까지 서비스가 백그라운드에서 실행됩니다. 이 서비스는 상태를 저장하므로 필요한 경우 여러 번 다시 부팅하더라도 계속될 수 있습니다. 서비스가 큐에 대기 중인 작업이 없음을 감지하면 다음에 컴퓨터가 부팅되어도 서비스가 다시 시작되지 않도록 상태를 다시 설정한 다음 종료됩니다.
클라이언트와 서비스 상호 작용
.NET Framework 버전 2.0에서는 명령줄 도구인 Ngen.exe를 통해서만 네이티브 이미지 서비스와 상호 작용할 수 있습니다. 네이티브 이미지 서비스에 대한 작업을 큐에 대기시키고 서비스와 상호 작용하려면 설치 스크립트에서 명령줄 도구를 사용합니다.