Zaženite hitrejše programe, nameščene z uporabo Ngen.exe
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.
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.