Ngen을 사용하여 설치된 더 빠른 프로그램을 시작합니다.exe

페이지 생성 날짜 :

환경

비주얼 스튜디오
  • 비주얼 스튜디오 커뮤니티 2017
  • 비주얼 스튜디오 커뮤니티 2019
WiX 툴셋
3.11.2

※ 다른 버전에서는 작동하지만 확인되지 않았습니다.

처음에

.NET Framework 응용 프로그램은 Ngen.exe을 사용하여 네이티브 이미지를 만들고 설치합니다. 시작 및 실행 속도를 높일 수 있습니다.

그러나 네이티브 이미지를 만들려면 응용 프로그램을 실행하는 환경에서 Ngen.exe를 사용해야 합니다. 미리 이미지된 이미지를 배포할 수 없습니다. 따라서 사용자가 Ngen.exe 수동으로 실행하시겠습니까? 설치 중에 실행해야 합니다.

이 섹션에서는 설치 시 wiX 설정에서 대상 exe 또는 dll에서 Ngen.exe을 수행하는 단계를 설명합니다.

Ngen.exe .NET Framework 응용 프로그램에만 유효하며 원래 네이티브 어셈블리입니다. .NET 코어 응용 프로그램에 사용할 때아무 소용이 없습니다.

사전 준비

  • WiX를 가진 설치 프로그램을 만들었다고 가정합니다.

라이브러리 참조 추가

참조에 WixNetFx익스텐션.dll 추가합니다. 폴더 경로는 C:\프로그램 파일(x86)\WiX 도구 집합 v3.11\bin입니다.

image

image

image

제품 편집.wxs

Ngen.exe 실행 되는 파일에 설정을 추가 합니다.

윅스/@xmlns

NetFx익확장 네임스페이스를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
		 xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">

네이티브 이미지를 만드는 구성 요소(파일)에 매개 변수 추가

netfx:NativeImage를 대상 파일의 자식 요소에 추가합니다.

<Component Win64="yes" Id="OGGVORBISPROJECT.DLL" DiskId="1" Guid="6A1D2FD8-9FA7-40D5-A0EA-356268B3C0B4">
  <File Id="OGGVORBISPROJECT.DLL" Name="OggVorbisProject.dll" Source="LittleSaviorTrial\Dll\OggVorbisProject.dll">
    <netfx:NativeImage Id="NGEN_OGGVORBISPROJECT.DLL" Platform="64bit" Priority="0"/>
  </File>
</Component>

exe 또는 dll이 Ngen의 특성으로 인해 다른 dlls에 대해 (종속)를 참조하는 경우.exe 참조하려는 exe 또는 dll만 지정할 수 있습니다. 예를 들어 A.exe B.dll를 참조하면 네이티브이미지를 A로 설정하면.exe B.dll에 자동으로 적용됩니다.

그러나 A.exe 동적으로 실행 후 assembly.Load 등을 사용하여 B.dll로드하는 경우 B.dll 종속성이 아닙니다. Ngen.exe 를 사용하여 A.exe B.dll 컴파일하지 않습니다. 이 경우 nativeImage을 B.dll로 설정합니다.

@Id

네이티브 이미지의 식별 이름입니다. 다른 아이디와 겹치지 마십시오.

@Platform

"32비트", "64비트" 또는 "모두"를 지정합니다. 설치하는 응용 프로그램의 설정을 32비트 또는 64비트로 변경합니다. 모두 네이티브 이미지를 모두 생성하므로 "모든 CPU"와 같은 실행 상태에 따라 전환되는 라이브러리를 지정합니다.

@Priority

설치 시 Ngen.exe 실행하는 경우. 0-3을 지정할 수 있지만 자세한 내용은 공식 웹 사이트를 참조하십시오.

요약

설치 프로그램을 만든 후 설치가 성공하면 네이티브 이미지가 생성되어 어셈블리 폴더에 등록되는 것을 확인할 수 있습니다.

image