Mulakan atur cara lebih cepat dipasang dengan menggunakan Ngen.exe

Tarikh penciptaan halaman :

Persekitaran

Visual Studio
  • Komuniti Studio Visual 2017
  • Komuniti Studio Visual 2019
Alatan WiX
3.11.2

※ Ia berfungsi dalam versi lain, tetapi ia tidak disahkan

Pada mulanya

Aplikasi .NET Framework mencipta dan memasang imej asli dengan menggunakan Ngen.exe. Anda boleh mempercepatkan permulaan dan pelaksanaan.

Walau bagaimanapun, untuk mencipta imej asli, anda mesti menggunakan Ngen.exe dalam persekitaran di mana anda menjalankan aplikasi. Anda tidak boleh mengedarkan imej pra-imej. Oleh itu, adakah anda mahu pengguna menjalankan Ngen.exe secara manual? Ia mesti dijalankan semasa pemasangan.

Seksyen ini menerangkan langkah-langkah untuk melaksanakan Ngen.exe pada exe sasaran atau dll dalam tetapan wiX semasa pemasangan.

Ambil perhatian bahawa Ngen.exe hanya sah untuk aplikasi .NET Framework dan pada asalnya adalah perhimpunan asli. Tiada gunanya menggunakannya untuk aplikasi .NET Core.

Persediaan terlebih dahulu

  • Andaikan bahawa anda telah mencipta pemasang dengan WiX.

Tambah rujukan pustaka

Tambah WixNetFxExtension.dll rujukan anda. Laluan folder ialah C:\Fail Atur Cara (x86)\WiX Toolset v3.11\bin.

image

image

image

Edit Product.wxs

Tambah seting ke fail yang menjalankan Ngen.exe.

Wix / @xmlns

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

Menambah parameter pada komponen (fail) yang mencipta imej asli

Tambah netfx:NativeImage kepada unsur anak dari fail sasaran.

<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 merujuk kepada (bergantung) pada dll lain kerana sifat Ngen.exe, anda boleh menentukan hanya exe atau dll yang anda ingin rujuk kepadanya. Contohnya, jika A.exe merujuk kepada B.dll, mengesetkan NativeImage kepada A.exe hanya terpakai kepada B.dll secara automatik.

Walau bagaimanapun, jika A.exe secara dinamik memuatkan B.dll menggunakan Assembly.Load dan sebagainya selepas pelaksanaan, B.dll bukan pergantungan. Menggunakan Ngen.exe untuk A.exe tidak menyusun B.dll. Dalam kes ini, tetapkan nativeImage kepada B.dll juga.

@Id

Nama pengenalan imej natif. Jangan bertindih ID lain.

@Platform

Tentukan sama ada "32bit", "64bit" atau "semua". Tukar seting pada 32bit atau 64bit untuk aplikasi yang anda pasang. Semua mencipta kedua-dua imej asli, jadi tentukan pustaka yang bertukar mengikut keadaan pelaksanaan seperti "Sebarang CPU".

@Priority

Bila hendak menjalankan Ngen.exe semasa pemasangan. Anda boleh menentukan 0-3, tetapi untuk maklumat lanjut, sila rujuk laman web rasmi.

Ringkasan

Selepas anda mencipta pemasar, anda boleh melihat bahawa jika pemasangan berjaya, imej asli dicipta dan didaftarkan dalam folder pemasangan.

image