Ngen kullanarak yüklenen daha hızlı programları başlatın.exe
ç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.
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.