이 컴퓨터 영상 생 성기 깊이 들 어가 기(Ngen.exe)도구 사용 방법 상세 설명

5858 단어 Ngen.exe공구.
먼저 배경 지식 을 소개 합 니 다.Net 프로그램 이 실 행 될 때 실시 간 으로(JIT)컴 파일 되 며,.Net 프로그램 파일 을 cpu 가 인식 하 는 어 셈 블 리 기기 코드 로 컴 파일 합 니 다.실시 간 컴 파일 은 추가 cpu 와 메모리 자원 을 소모 해 야 합 니 다.이것 은 서버 엔 드 프로그램 에 중요 하지 않 습 니 다.실시 간 컴 파일 은 프로그램 이 처음 실 행 될 때 만 컴 파일 되 고 그 후에 더 이상 할 필요 가 없 기 때 문 입 니 다.만약 당신 이 비교적 큰 winform 프로그램 이나 silverlight 등 클 라 이언 트 프로그램 을 하고 있다 면 미리 컴 파일 하 는 것 을 고려 해 야 합 니 다.Net framework 설치 디 렉 터 리 아래(C:\Windows\Microsoft.NET\\Framework\v 4.0.30319)ngen.exe 도구 가 있 습 니 다.바로 이 일 을 하 는 것 입 니 다.이 프로그램 은 콘 솔 프로그램 입 니 다.가장 자주 사용 하 는 방법 은 다음 과 같 습 니 다.파일 filepath 를 만 드 는 native code 는 다음 명령 을 사용 합 니 다

ngen install filepath
파일 filepath 를 마 운 트 해제 하 는 native code 는 다음 명령 을 사용 합 니 다

Ngen uninstall filepath
본 고 는 주로 이 두 가지 용법 을 사용 합 니 다.이 도구 에 관 한 더 많은 매개 변수 와 소 개 를 참고 하 십시오msdn클 라 이언 트 프로그램 은 반드시 설치 패 키 지 를 만들어 야 합 니 다.제 생각 은 프로그램 을 설치 할 때 이 컴퓨터 이미지 의 생 성 작업 을 하 는 것 입 니 다.우 리 는 설치 프로그램 에 사용자 정의 작업 을 추가 해서 이 일 을 할 수 있다.만약 당신 이 본문의 화제 에 관심 이 있다 면,아래 의 절차 에 따라 시험 해 보 세 요.1.새 솔 루 션,이름 은 마음대로 2.새 솔 루 션 에 winform 프로젝트 를 추가 합 니 다.이 winform 프로젝트 에서 생 성 된 실행 가능 한 파일 을 이 컴퓨터 이미지 생 성 작업 으로 가정 합 니 다.이것 은 프 리 젠 테 이 션 일 뿐 이 므 로 이 항목 은 아무것도 하지 않 습 니 다.3.이 솔 루 션 에 Ngen Installer 라 는 라 이브 러 리 항목 을 추가 하고 Installer Class 를 새로 만 듭 니 다.
새로 만 든 Ngen Installer 클래스 에 설치 할 때 ngen 설치 프로그램 을 사용 하 는 기능 코드 를 추가 합 니 다.4.코드 구현 은 간단 하 다.바로 Process 를 사용 하여 ngen 프로그램 을 실행 하여 설 치 를 완성 하 는 것 이다.주의 할 점 이 있 을 때,구체 적 으로 그 파일 을 설치 할 때 Context.Parameters["ngen 1|2|3"]를 통 해 전 달 됩 니 다.이 매개 변 수 는 설치 패 키 지 를 만 드 는 사용자 정의 절차 에서 설정 해 야 합 니 다.구현 코드:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Runtime.InteropServices;
using System.IO;
using System.Diagnostics;

 
namespace NgenInstaller
{
    [RunInstaller(true)]
    public partial class NgenInstaller : System.Configuration.Install.Installer
    {
        public NgenInstaller()
        {
            InitializeComponent();
        }

        public override void Install(IDictionary stateSaver)
        {
            NgenFile(InstallTypes.Install);
        }

 
        public override void Uninstall(IDictionary savedState)
        {
            NgenFile(InstallTypes.Uninstall);
        }

        private enum InstallTypes
        {
            Install,
            Uninstall
        }

        private void NgenFile(InstallTypes options)
        {
            string envDir = RuntimeEnvironment.GetRuntimeDirectory();
            string ngenPath = Path.Combine(envDir, "ngen.exe");
            string exePath = Context.Parameters["assemblypath"];            
            string appDir = Path.GetDirectoryName(exePath);

            int i = 1;

            do {
                string fileKey = "ngen" + i;
                // , ngen1...5,6
                if (Context.Parameters.ContainsKey(fileKey))
                {
                    string ngenFileName = Context.Parameters["ngen" + i];
                    string fileFullName = Path.Combine(appDir, ngenFileName);
                    string argument = (options == InstallTypes.Install ? "install" : "uninstall") + " \"" + fileFullName + "\"";

                    Process ngenProcess = new Process();
                    ngenProcess.StartInfo.FileName = ngenPath;
                    ngenProcess.StartInfo.Arguments = argument;
                    ngenProcess.StartInfo.CreateNoWindow = true;
                    ngenProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    ngenProcess.Start();

                    ngenProcess.WaitForExit();
                    i++;
                }
                else {
                    break;
                }
            }
            while (true);
        }
    }
}
이 라 이브 러 리 에는 이 클래스 만 있 습 니 다.우리 가 원 하 는 작업 을 완성 합 니 다.마지막 단 계 는 설치 프로그램 을 만 들 고 솔 루 션 에 설치 항목 을 추가 하 는 것 입 니 다.

설치 프로그램 을 추가 한 후 설치 항목 을 우 클릭 하여 항목 출력 을 추가 합 니 다.아래 그림 과 같 습 니 다.

프로젝트 출력 을 추가 하 는 대화 상자 에서 Winforms 프로젝트 와 새로 만 든 라 이브 러 리 를 선택 하 십시오.그리고 설치 항목 을 오른쪽 클릭 하여 보 기 를 선택 합 니 다.사용자 정의 작업 창 을 열 고'Ngen 이 컴퓨터 이미 지 를 생 성 합 니 다'라 는 사용자 정의 작업 을 추가 합 니 다.작업 을 추가 할 때 Ngen Installer 항목 을 선택 하여 다음 그림 을 출력 합 니 다.

다음 그림 과 같이 사용자 정의 작업 이름 을"Ngen 생 성 본체 코드"로 변경 합 니 다.

그리고 새 사용자 정의 작업 을 오른쪽 클릭 하고 속성 창 을 선택 하 십시오.속성 창의 CustomActionData 속성 에 작업 할 프로그램 집합 을 추가 합 니 다.CustomActionData 는 키 쌍 입 니 다.키 쌍 마다/시작 합 니 다.

이 단 계 를 완성 하면 얼마 차이 가 나 지 않 으 니,너 는 전체 해결 방안 을 컴 파일 할 수 있다.설치 항목 이 생 성 된 설치 패 키 지 를 실행 합 니 다.6.설치 패 키 지 를 실행 합 니 다.모든 것 이 정상 이면 이 컴퓨터 이미지 가 생 성 됩 니 다.ngen display filePath 명령 을 통 해 native 이 컴퓨터 의 설치 가 정상 적 인지 확인 할 수 있 습 니 다.다음 명령 행 출력
4.567916.4.567915.테스트 항목 의 소스 코드 입 니 다.이 문장 이 유용 하 기 를 바란다.

좋은 웹페이지 즐겨찾기