Starta snabbare program installerade med Ngen.exe

Datum för skapande av sida :

miljö

Visuell studio
  • Visual Studio Community 2017
  • Visual Studio Community 2019
WiX-verktygsuppsättning
3.11.2

※ Det fungerar i andra versioner, men det är obekräftat

Först

.NET Framework-programmet skapar och installerar inbyggda avbildningar med hjälp av Ngen.exe. Du kan påskynda start och körning.

Men för att skapa en inbyggd avbildning måste du använda Ngen.exe i den miljö där du kör programmet. Du kan inte distribuera en förbildad bild. Vill du därför att användarna ska köra Ngen.exe manuellt? Den måste köras under installationen.

I det här avsnittet beskrivs stegen för att utföra Ngen.exe på målexen eller dll i WiX-inställningar under installationen.

Observera att Ngen.exe är endast giltigt för .NET Framework-program och ursprungligen är inbyggd sammansättning. Det är ingen mening med att använda den för .NET Core-program.

Förberedelse i förväg

  • Anta att du har skapat ett installationsprogrammet med WiX.

Lägg till biblioteksreferens

Lägg till WixNetFxExtension.dll till din referens. Mappsökvägen är C:\Programfiler (x86)\WiX Toolset v3.11\bin.

image

image

image

Redigera Product.wxs

Lägg till inställningar i filer som kör Ngen.exe.

Wix/@xmlns

Lägg till namnområdet 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">

Lägga till parametrar i komponenter (filer) som skapar inbyggda bilder

Lägg till netfx:NativeImage i de underordnade elementen i målfilen.

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

Om exe eller dll refererar till (beror på) andra dlls på grund av arten av Ngen.exe kan du bara ange exe eller dll som du vill referera till det från. Om A.exe till exempel refererar till B.dll, gäller det bara automatiskt för B.dll att ange NativeImage .exe A.exe.

Men om A.exe laddar B.dll dynamiskt med Assembly.Load och liknande efter körning, är B.dll inte ett beroende. Att använda .exe för A.exe sammanställer inte B.dll. I det här fallet ställer du in nativeImage .dll B-1900-dräkt också.

@Id

Identifierings namn på den inbyggda avbildningen. Överlappa inte andra ID:t.

@Platform

Ange antingen "32bit", "64bit" eller "all". Ändra inställningarna med 32 eller 64bit för det program du installerar. Alla skapar båda inbyggda avbildningar, så ange bibliotek som växlar enligt körningstillståndet som "Vilken CPU som helst".

@Priority

När du ska köra Ngen.exe under installationen. Du kan ange 0-3, men för mer information, se den officiella webbplatsen.

Sammanfattning

När du har skapat installationsprogrammet kan du se att om installationen lyckas skapas och registreras en inbyggd avbildning i monteringsmappen.

image