Paleiskite greitesnes programas, įdiegtas naudojant "Ngen.exe

Puslapio sukūrimo data :

Aplinkos

Vizualinė studija
  • Vizualinės studijos bendruomenė 2017
  • Vizualinės studijos bendruomenė 2019
WiX Toolset
3.11.2

※ Jis veikia kitose versijose, tačiau jis nepatvirtintas

Iš pradžių

.NET Framework programa sukuria ir įdiegia vietinius vaizdus naudodama Ngen.exe. Galite pagreitinti paleidimą ir vykdymą.

Tačiau norėdami sukurti vietinį vaizdą, turite naudoti "Ngen.exe aplinkoje, kurioje vykdote programą. Negalite platinti iš anksto atvaizduotas vaizdas. Todėl, ar norite, kad vartotojai paleisti Ngen.exe rankiniu būdu? Jis turi būti vykdomas diegimo metu.

Šiame skyriuje aprašomi veiksmai, kaip atlikti Ngen.exe paskirties exe arba dll wiX parametruose diegimo metu.

Atminkite, kad Ngen.exe galioja tik .NET Framework programoms ir iš pradžių yra vietinis rinkinys. Nėra prasmės jį naudoti .NET Core programoms.

Pasiruošimas iš anksto

  • Tarkime, kad sukūrėte diegimo programą su "WiX".

Įtraukti bibliotekos nuorodą

Pridėti WixNetFxExtension.dll į savo nuorodą. Aplanko maršrutas yra C:\Program Files (x86)\WiX Toolset v3.11\bin.

image

image

image

Redaguoti Product.wxs

Įtraukite parametrus į failus, kuriuose veikia Ngen.exe.

Wix/@xmlns

Pridėkite NetFxExtension vardų sritį.

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

Parametrų pridėjimas prie komponentų (failų), kurie kuria vietinius vaizdus

Įtraukite netfx:NativeImage į antrinius paskirties failo elementus.

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

Jei exe arba dll nurodo (priklauso) nuo kitų dlls dėl Ngen pobūdžio.exe, galite nurodyti tik exe arba dll, iš kurio norite jį nurodyti. Pavyzdžiui, jei A.exe nurodo B.dll, "NativeImage" nustatymas A.exe automatiškai taikomas tik B.dll.

Tačiau, jei A.exe dinamiškai įkelia B.dll naudojant Assembly.Load ir pan.dll. Naudojant Ngen.exe A.exe nesukompiliuoja B.dll. Tokiu atveju nustatykite nativeImage į B.dll taip pat.

@Id

Pirminio vaizdo identifikavimo pavadinimas. Nepersidengti su kitais ID.

@Platform

Nurodykite "32bit", "64bit" arba "all". Pakeiskite diegiamos programos nustatymus 32bit arba 64bit. Visi sukuria abu vietinius vaizdus, todėl nurodykite bibliotekas, kurios persijungia pagal vykdymo būseną, pvz., "Bet koks CPU".

@Priority

Kada paleisti "Ngen.exe diegimo metu. Galite nurodyti 0-3, tačiau daugiau informacijos rasite oficialioje svetainėje.

Suvestinė

Sukūrę diegimo programą, galite matyti, kad jei diegimas pavyksta, sukuriamas ir surinkimo aplanke užregistruojamas vietinis vaizdas.

image