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입니다.
제품 편집.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을 지정할 수 있지만 자세한 내용은 공식 웹 사이트를 참조하십시오.
요약
설치 프로그램을 만든 후 설치가 성공하면 네이티브 이미지가 생성되어 어셈블리 폴더에 등록되는 것을 확인할 수 있습니다.