Porniți programele mai rapide instalate utilizând Ngen.exe

Data creării paginii :

mediu

Visual Studio
  • Comunitatea Visual Studio 2017
  • Comunitatea Visual Studio 2019
Set de instrumente WiX
3.11.2

※ Funcționează în alte versiuni, dar este neconfirmat

La început

Aplicația .NET Framework creează și instalează imagini native utilizând Ngen.exe. Puteți accelera pornirea și execuția.

Cu toate acestea, pentru a crea o imagine nativă, trebuie să utilizați Ngen.exe în mediul în care executați aplicația. Nu puteți distribui o imagine pre-imagine. De aceea, doriți ca utilizatorii să ruleze Ngen.exe manual? Acesta trebuie să fie rulat în timpul instalării.

Această secțiune descrie pașii pentru a efectua Ngen.exe pe exe țintă sau dll în setările WiX în timpul instalării.

Rețineți că Ngen.exe este valabil numai pentru aplicațiile .NET Framework și este inițial asamblare nativă. Nu are rost să-l utilizați pentru aplicațiile .NET Core.

Pregătirea în avans

  • Să presupunem că ați creat un program de instalare cu WiX.

Adăugarea referinței bibliotecii

Adăugați WixNetFxExtension.dll la referință. Calea folderului este C:\Program Files (x86)\WiX Toolset v3.11\bin.

image

image

image

Editare Product.wxs

Adăugați setări la fișierele care rulează Ngen.exe.

Wix/@xmlns

Adăugați spațiul de nume NetFxExtension.

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

Adăugarea parametrilor la componentele (fișierele) care creează imagini native

Adăugați netfx:NativeImage la elementele fiu ale fișierului țintă.

<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>

Dacă exe sau dll se referă la (depinde) de alte dlls datorită naturii Ngen.exe, puteți specifica numai exe sau dll de la care doriți să se refere la ea. De exemplu, dacă A.exe se referă la B.dll, setarea NativeImage la A.exe se aplică automat numai la B.dll.

Cu toate acestea, dacă A.exe încarcă dinamic B.dll utilizând Assembly.Load și alte lucruri asemenea după execuție, B.dll nu este o dependență. Folosind Ngen.exe pentru A.exe nu compilează B.dll. În acest caz, setați nativeImage la B.dll de asemenea.

@Id

Numele de identificare al imaginii native. Nu se suprapune peste alte ID-uri.

@Platform

Specificați fie "pe 32 de biți", "pe 64 de biți" sau "toate". Modificați setările la 32 de biți sau pe 64 de biți pentru aplicația pe care o instalați. Toate creează ambele imagini native, deci specificați bibliotecile care comută în funcție de starea de execuție, cum ar fi "Orice procesor".

@Priority

Când se execută Ngen.exe în timpul instalării. Puteți specifica 0-3, dar pentru mai multe informații, vă rugăm să consultați site-ul oficial.

Rezumat

După ce creați programul de instalare, puteți vedea că, dacă instalarea reușește, o imagine nativă este creată și înregistrată în folderul de asamblare.

image