Starten Sie schnellere Programme, die mit Ngen installiert wurden.exe
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.
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.