بدء تشغيل برامج أسرع مثبتة باستخدام 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 الأساسية.

التحضير مقدما

  • افترض أنك قمت بإنشاء مثبت باستخدام WiX.

إضافة مرجع المكتبة

إضافة WixNetFxExtension.dll إلى المرجع الخاص بك. مسار المجلد هو C:\Program Files (x86)\WiX مجموعة أدوات v3.11\bin.

image

image

image

تحرير Product.wxs

إضافة إعدادات إلى الملفات التي تعمل Ngen.exe.

ويكس / @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 الرجوع إلى (يعتمد) على dlls أخرى بسبب طبيعة Ngen.exe، يمكنك تحديد فقط السابق أو dll الذي تريد الرجوع إليه. على سبيل المثال، إذا كان A.exe يشير إلى B.dll، يتم تطبيق إعداد NativeImage إلى A.exe تلقائيا فقط على B.dll.

ومع ذلك، إذا A.exe بشكل حيوي بتحميل B.dll باستخدام Assembly.Load وما يشبه ذلك بعد التنفيذ، B.dll ليست تبعية. استخدام Ngen.exe ل A.exe لا ترجمة .dll B. في هذه الحالة، تعيين nativeImage إلى B.dll كذلك.

@Id

اسم تعريف الصورة الأصلية. لا تتداخل مع معرفات أخرى.

@Platform

حدد إما "32bit" أو "64bit" أو "all". تغيير الإعدادات في 32bit أو 64bit للتطبيق الذي تقوم بتثبيته. ينشئ الجميع الصور الأصلية، لذا حدد المكتبات التي تقوم بالتبديل وفقا لحالة التنفيذ مثل "أي وحدة المعالجة المركزية".

@Priority

متى يتم تشغيل Ngen.exe أثناء التثبيت. يمكنك تحديد 0-3، ولكن لمزيد من المعلومات، يرجى الرجوع إلى الموقع الرسمي.

ملخص

بعد إنشاء المثبت، يمكنك مشاهدة أنه إذا نجح التثبيت، يتم إنشاء صورة أصلية وتسجيلها في مجلد التجميع.

image