Ngen kullanarak yüklenen daha hızlı programları başlatın.exe

Sayfa oluşturma tarihi :

çevre

Visual Studio
  • Visual Studio Topluluğu 2017
  • Visual Studio Topluluğu 2019
WiX Araç Seti
3.11.2

※ Diğer versiyonlarda çalışır, ancak onaylanmamıştır

İlk başta

.NET Framework uygulaması, Ngen.exe kullanarak yerel görüntüler oluşturur ve yükler. Başlatma ve yürütmeyi hızlandırabilirsiniz.

Ancak, yerel bir görüntü oluşturmak için uygulamayı çalıştırdığınız ortamda Ngen.exe kullanmanız gerekir. Önceden görüntülenmiş bir görüntüyü dağıtamazsınız. Bu nedenle, kullanıcıların Ngen.exe el ile çalıştırmasını istiyor musunuz? Yükleme sırasında çalıştırılmalıdır.

Bu bölümde, yükleme sırasında wiX ayarlarında hedef exe veya dll üzerinde Ngen.exe gerçekleştirme adımları açıklanmaktadır.

Ngen.exe yalnızca .NET Framework uygulamaları için geçerli olduğunu ve özgün olarak yerel derleme olduğunu unutmayın. .NET Core uygulamaları için kullanmanın bir anlamı yoktur.

Önceden hazırlık

  • WiX ile bir yükleyici oluşturduğunuzu varsayalım.

Kitaplık başvurusu ekle

Referansınıza WixNetFxExtension.dll ekleyin. Klasör yolu C:\Program Files (x86)\WiX Toolset v3.11\bin'dir.

image

image

image

Product.wxs'i Düzenle

Ngen.exe çalışan dosyalara ayarlar ekleyin.

Wix/@xmlns

NetFxExtension ad alanını ekleyin.

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

Yerel görüntüler oluşturan bileşenlere (dosyalara) parametre ekleme

Hedef dosyanın alt öğelerine netfx:NativeImage ekleyin.

<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 veya dll, Ngen.exe doğası nedeniyle diğer dll'lere başvuruyorsa (bağımlıysa), yalnızca başvurmak istediğiniz exe veya dll'yi belirtebilirsiniz. Örneğin, A.exe B.dll'ye başvuruyorsa, NativeImage'ı A.exe olarak ayarlamak yalnızca otomatik olarak B.dll için geçerlidir.

Ancak, A.exe, Assembly.Load ve sonrakini kullanarak B.dll'yi dinamik olarak yüklüyorsa, B.dll bir bağımlılık değildir. A.exe için Ngen.exe kullanmak B.dll derlemez. Bu durumda, nativeImage'ı B.dll olarak da ayarlayın.

@Id

Yerel görüntünün kimlik adı. Diğer kimliklerle çakışmayın.

@Platform

"32bit", "64bit" veya "all" belirtin. Yüklediğiniz uygulama için ayarları 32bit veya 64bit olarak değiştirin. Tümü her iki yerel görüntü de oluşturur, bu nedenle "Herhangi bir CPU" gibi yürütme durumuna göre geçiş yapan kitaplıkları belirtin.

@Priority

Ngen'in ne zaman çalıştır.exe yükleme sırasında çalıştırılır. 0-3 belirtebilirsiniz, ancak daha fazla bilgi için lütfen resmi web sitesine bakın.

Özet

Yükleyiciyi oluşturduktan sonra, yükleme başarılı olursa, yerel bir görüntünün oluşturulduğunu ve derleme klasörüne kaydedildiğini görebilirsiniz.

image