Mulai program yang lebih cepat yang diinstal dengan menggunakan Ngen.exe

Tanggal pembuatan halaman :

lingkungan

Visual Studio
  • Komunitas Visual Studio 2017
  • Komunitas Visual Studio 2019
WiX Toolset
3.11.2

※ Ini bekerja dalam versi lain, tetapi belum dikonfirmasi

Pada awalnya

Aplikasi .NET Framework membuat dan menginstal gambar asli dengan menggunakan Ngen.exe. Anda dapat mempercepat startup dan eksekusi.

Namun, untuk membuat gambar asli, Anda harus menggunakan Ngen.exe di lingkungan tempat Anda menjalankan aplikasi. Anda tidak dapat mendistribusikan gambar pra-gambar. Oleh karena itu, apakah Anda ingin pengguna menjalankan Ngen.exe secara manual? Ini harus dijalankan selama instalasi.

Bagian ini menjelaskan langkah-langkah untuk melakukan Ngen.exe pada exe target atau dll dalam pengaturan wiX selama instalasi.

Perhatikan bahwa Ngen.exe hanya berlaku untuk aplikasi .NET Framework dan awalnya adalah perakitan asli. Tidak ada gunanya menggunakannya untuk aplikasi .NET Core.

Persiapan sebelumnya

  • Asumsikan bahwa Anda telah membuat installer dengan WiX.

Menambahkan referensi pustaka

Tambahkan WixNetFxExtension.dll ke referensi Anda. Jalur folder adalah C:\Program Files (x86)\WiX Toolset v3.11\bin.

image

image

image

Edit Product.wxs

Tambahkan pengaturan ke file yang menjalankan Ngen.exe.

Wix/@xmlns

Tambahkan ruang nama 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">

Menambahkan parameter ke komponen (file) yang membuat gambar asli

Tambahkan netfx:NativeImage ke elemen anak dari file target.

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

Jika exe atau dll mengacu pada (tergantung) pada dlls lain karena sifat Ngen.exe, Anda dapat menentukan hanya exe atau dll dari mana Anda ingin merujuk ke sana. Misalnya, jika A.exe mengacu pada B.dll, mengatur NativeImage ke A.exe hanya secara otomatis berlaku untuk B.dll.

Namun, jika A.exe secara dinamis memuat B.dll menggunakan Assembly.Load dan sejenisnya setelah eksekusi, B.dll bukanlah ketergantungan. Menggunakan Ngen.exe untuk A.exe tidak mengkompilasi B.dll. Dalam hal ini, tetapkan nativeImage ke B.dll juga.

@Id

Nama identifikasi gambar asli. Jangan tumpang tindih dengan Masehi lainnya.

@Platform

Tentukan "32bit", "64bit" atau "all". Ubah pengaturan pada 32bit atau 64bit untuk aplikasi yang Anda instal. Semua membuat kedua gambar asli, jadi tentukan pustaka yang beralih sesuai dengan keadaan eksekusi seperti "CPU apa pun".

@Priority

Kapan harus menjalankan Ngen.exe selama instalasi. Anda dapat menentukan 0-3, tetapi untuk informasi lebih lanjut, silakan lihat ke situs web resmi.

Ringkasan

Setelah Anda membuat penginstal, Anda dapat melihat bahwa jika instalasi berhasil, gambar asli dibuat dan terdaftar di folder perakitan.

image