Starten Sie schnellere Programme, die mit Ngen installiert wurden.exe

Erstellungsdatum der Seite :

Umwelt

Visual Studio
  • Visual Studio Community 2017
  • Visual Studio-Community 2019
WiX-Toolset
3.11.2

※ Es funktioniert in anderen Versionen, ist aber unbestätigt

Zuerst

Die .NET Framework-Anwendung erstellt und installiert systemeigene Abbilder mithilfe von Ngen.exe. Sie können den Start und die Ausführung beschleunigen.

Um jedoch ein natives Image zu erstellen, müssen Sie Ngen.exe in der Umgebung verwenden, in der Sie die Anwendung ausführen. Sie können ein vorab abgebildetes Bild nicht verteilen. Möchten Sie daher, dass Benutzer Ngen.exe manuell ausführen? Es muss während der Installation ausgeführt werden.

In diesem Abschnitt werden die Schritte zum Ausführen von Ngen.exe für die Ziel-EXE oder -DLL in den wiX-Einstellungen während der Installation beschrieben.

Beachten Sie, dass Ngen.exe nur für .NET Framework-Anwendungen gültig ist und ursprünglich systemeigene Assembly ist. Es hat keinen Sinn, es für .NET Core-Anwendungen zu verwenden.

Vorbereitung im Vorfeld

  • Angenommen, Sie haben ein Installationsprogramm mit WiX erstellt.

Bibliotheksverweis hinzufügen

Fügen Sie WixNetFxExtension.dll zu Ihrer Referenz hinzu. Der Ordnerpfad lautet C:\Programme (x86)\WiX Toolset v3.11\bin.

image

image

image

Product.wxs bearbeiten

Fügen Sie Einstellungen zu Dateien hinzu, auf denen Ngen.exe ausgeführt wird.

Wix/@xmlns

Fügen Sie den NetFxExtension-Namespace hinzu.

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

Hinzufügen von Parametern zu Komponenten (Dateien), die systemeigene Images erstellen

Fügen Sie netfx:NativeImage zu den untergeordneten Elementen der Zieldatei hinzu.

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

Wenn exe oder dll aufgrund der Natur von Ngen.exe auf andere DLLs verweisen (abhängig), können Sie nur die exe oder dll angeben, von der aus Sie darauf verweisen möchten. Wenn sich A.exe beispielsweise auf B.dll bezieht, gilt das Festlegen von NativeImage auf A.exe automatisch nur für B.dll.

Wenn A.exe jedoch B.dll mit Assembly.Load und dergleichen nach der Ausführung dynamisch lädt, ist B.dll keine Abhängigkeit. Die Verwendung von Ngen.exe für A.exe kompiliert die B.dll nicht. Setzen Sie in diesem Fall nativeImage ebenso auf B.dll.

@Id

Identifikationsname des nativen Images. Überlappen Sie keine anderen IDs.

@Platform

Geben Sie entweder "32bit", "64bit" oder "all" an. Ändern Sie die Einstellungen bei 32bit oder 64bit für die Anwendung, die Sie installieren. All erstellt beide nativen Images, also geben Sie Bibliotheken an, die entsprechend dem Ausführungsstatus wechseln, z. B. "Any CPU".

@Priority

Wann Ngen.exe während der Installation ausgeführt werden soll. Sie können 0-3 angeben, aber weitere Informationen finden Sie auf der offiziellen Website.

Zusammenfassung

Nachdem Sie das Installationsprogramm erstellt haben, können Sie sehen, dass bei erfolgener Installation ein systemeigenes Abbild erstellt und im Assemblyordner registriert wird.

image