Zaženite hitrejše programe, nameščene z uporabo Ngen.exe

Datum ustvarjanja strani :

okolje

Vizualni studio
  • Skupnost vizualnega studia 2017
  • Skupnost vizualnega studia 2019
WiX orodji
3.11.2

- Deluje v drugih različicah, vendar je nepotrjenega

Sprva

Aplikacija .NET Framework ustvarja in namešča avtohtone slike z uporabo programa Ngen.exe. Pospešite lahko zagon in izvršitev.

Če pa želite ustvariti avtohtono sliko, morate uporabiti Ngen.exe v okolju, kjer zaženete aplikacijo. Slike pred sliko ne morete distribuirati. Zato želite, da uporabniki zaženejo Ngen.exe ročno? Med namestitvijo ga je treba zagnati.

V tem razdelku so opisani koraki za izvajanje programa Ngen.exe na ciljni exe ali dll v nastavitvah wiX med namestitvijo.

Upoštevajte, da .exe Ngen velja le za aplikacije .NET Framework in je prvotno izvorna montaža. Nima smisla uporabljati ga za .NET Core aplikacije.

Priprava vnaprej

  • Predpostavi, da ste ustvarili namestitveni program z WiX.

Dodajanje sklica knjižnice

Dodajte WixNetFxExtension.dll sklicu. Pot mape je C:\Program Files (x86)\WiX Toolset v3.11\bin.

image

image

image

Urejanje izdelka.wxs

Dodajte nastavitve datotekam, ki zaženejo Ngen.exe.

Wix/@xmlns

Dodajte imenski prostor 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">

Dodajanje parametrov komponentam (datotekam), ki ustvarjajo domorodne slike

Dodajte netfx:NativeImage otrokom elementom ciljne datoteke.

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

Če se exe ali dll sklicuje na (odvisno) od drugih dlls zaradi narave Ngen.exe, lahko določite le exe ali dll, iz katerega se želite sklicevati. Če se na primer A.exe nanaša na B.dll nastavitev NativeImage na A.exe velja samo za B.dll.

Če pa A.exe dinamično naloži B.dll uporabo Assembly.Load in podobno po izvršitvi, B.dll ni odvisnost. Uporaba Ngen.exe za A.exe ne seli B.dll. V tem primeru nastavite nativeImage na B.dll prav tako.

@Id

Identifikacijsko ime domorodske slike. Ne prekrivajte drugih ID-jev.

@Platform

Navedite bodisi »32bit«, »64bit« ali »vse«. Spremenite nastavitve na 32bit ali 64bit za aplikacijo, ki jo nameščate. Vsi ustvarijo tako domorodne slike, zato določite knjižnice, ki preklopijo glede na stanje izvršitve, kot je "Any CPU".

@Priority

Kdaj zagnati Ngen.exe med namestitvijo. Lahko določite 0-3, vendar za več informacij glejte uradno spletno stran.

Povzetek

Ko ustvarite namestitveni program, lahko vidite, da se v primeru uspeha namestitve ustvari in registrira v mapi sestavljanja.

image