Ξεκινήστε ταχύτερα προγράμματα που έχουν εγκατασταθεί χρησιμοποιώντας το Ngen.exe

Ημερομηνία δημιουργίας σελίδας :

περιβάλλον

Οπτικό Στούντιο
  • Κοινότητα Οπτικού Στούντιο 2017
  • Κοινότητα Οπτικού Στούντιο 2019
Εργαλειο-εργαλειο-τειχών WiX
3.11.2

⇨ Λειτουργεί σε άλλες εκδόσεις, αλλά είναι ανεπιβεβαίωτο

Αρχικά

Η εφαρμογή .NET Framework δημιουργεί και εγκαθιστά εγγενείς εικόνες χρησιμοποιώντας το Ngen.exe. Μπορείτε να επιταχύνετε την εκκίνηση και την εκτέλεση.

Ωστόσο, για να δημιουργήσετε μια εγγενή εικόνα, πρέπει να χρησιμοποιήσετε το Ngen.exe στο περιβάλλον όπου εκτελείτε την εφαρμογή. Δεν μπορείτε να διανείμετε μια εικόνα προ-εικόνας. Επομένως, θέλετε οι χρήστες να εκτελούν το Ngen.exe με μη αυτόματο τρόπο; Πρέπει να εκτελείται κατά την εγκατάσταση.

Αυτή η ενότητα περιγράφει τα βήματα για την εκτέλεση του Ngen.exe στο exe ή το dll προορισμού στις ρυθμίσεις wiX κατά την εγκατάσταση.

Σημειώστε ότι το Ngen.exe ισχύει μόνο για εφαρμογές .NET Framework και είναι αρχικά εγγενής συγκρότηση. Δεν υπάρχει λόγος να το χρησιμοποιήσετε για εφαρμογές .NET Core.

Προετοιμασία εκ των προτέρων

  • Ας υποθέσουμε ότι έχετε δημιουργήσει ένα πρόγραμμα εγκατάστασης με WiX.

Προσθήκη αναφοράς βιβλιοθήκης

Προσθέστε το WixNetFxExtension.dll στην αναφορά σας. Η διαδρομή φακέλου είναι C:\Program Files (x86)\WiX Toolset v3.11\bin.

image

image

image

Επεξεργασία του Product.wxs

Προσθέστε ρυθμίσεις σε αρχεία που εκτελούν το Ngen.exe.

Wix/@xmlns

Προσθέστε το χώρο ονομάτων 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">

Προσθήκη παραμέτρων σε στοιχεία (αρχεία) που δημιουργούν εγγενείς εικόνες

Προσθέστε netfx:NativeImage στα θυγατρικά στοιχεία του αρχείου προορισμού.

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

Εάν το exe ή το dll αναφέρεται (εξαρτάται) από άλλα dll λόγω της φύσης του Ngen.exe, μπορείτε να καθορίσετε μόνο το exe ή το dll από το οποίο θέλετε να ανατρέξετε σε αυτό. Για παράδειγμα, εάν το A.exe αναφέρεται στο B.dll, η ρύθμιση του NativeImage σε A.exe ισχύει μόνο αυτόματα για το B.dll.

Ωστόσο, εάν το A.exe φορτώνει δυναμικά το B.dll χρησιμοποιώντας το Assembly.Load και τα παρόμοια μετά την εκτέλεση, το B.dll δεν είναι εξάρτηση. Η χρήση του Ngen.exe για το A.exe δεν συγκεντρώνει το B.dll. Σε αυτή την περίπτωση, ρυθμίστε το nativeImage σε B.dll επίσης.

@Id

Όνομα αναγνώρισης της εγγενούς εικόνας. Μην επικαλύπτεις άλλες απειλές.

@Platform

Καθορίστε είτε "32bit", "64bit" ή "όλα". Αλλάξτε τις ρυθμίσεις σε 32bit ή 64bit για την εφαρμογή που εγκαθιστάτε. Όλα δημιουργούν και τις δύο εγγενείς εικόνες, οπότε καθορίστε βιβλιοθήκες που αλλάζουν ανάλογα με την κατάσταση εκτέλεσης, όπως "Οποιαδήποτε CPU".

@Priority

Πότε να εκτελέσετε το Ngen.exe κατά την εγκατάσταση. Μπορείτε να καθορίσετε το 0-3, αλλά για περισσότερες πληροφορίες, ανατρέξτε στην επίσημη ιστοσελίδα.

Περίληψη

Αφού δημιουργήσετε το πρόγραμμα εγκατάστασης, μπορείτε να δείτε ότι εάν η εγκατάσταση είναι επιτυχής, δημιουργείται και καταχωρείται μια εγγενής εικόνα στο φάκελο συγκρότησης.

image