הפעל תוכניות מהירות יותר המותקנות באמצעות Ngen.exe
סביבה
- סטודיו חזותי
-
- Visual Studio Community 2017
- Visual Studio Community 2019
- ערכת הכלים של WiX
- 3.11.2
※ זה עובד בגרסאות אחרות, אבל זה לא מאושר
בהתחלה
היישום .NET Framework יוצר ומתקין תמונות מקוריות באמצעות .exe Ngen. באפשרותך להאיץ את האתחול והביצוע.
עם זאת, כדי ליצור תמונה מקורית, עליך להשתמש .exe Ngen בסביבה שבה אתה מפעיל את היישום. אין באפשרותך להפיץ תמונה עם תמונה מוקדמת. לכן, האם ברצונך שמשתמשים יפעילו את .exe Ngen באופן ידני? יש להפעיל אותו במהלך ההתקנה.
סעיף זה מתאר את השלבים לביצוע .exe Ngen ב- exe היעד או בקובץ ה- dll בהגדרות WiX במהלך ההתקנה.
שים לב .exe Ngen חוקית רק עבור יישומי .NET Framework והיא מקורית במקור. אין טעם להשתמש בו עבור יישומי .NET Core.
הכנה מראש
- נניח שיצרת מתקין עם WiX.
הוספת הפניה לספריה
הוסף את WixNetFxExtension.dll להתייחסות שלך. נתיב התיקיה הוא C:\Program Files (x86)\ערכת הכלים של WiX v3.11\bin.
ערוך Product.wxs
הוסף הגדרות לקבצים בהם פועלים .exe Ngen.
Wix/@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 אחרים עקב אופיו של .exe Ngen, באפשרותך לציין רק את האקס או קובץ ה- dll שממנו ברצונך להפנות אליו. לדוגמה, אם A.exe מתייחס ל- B.dll, הגדרת NativeImage כ- A.exe חלה באופן אוטומטי רק על B.dll.
עם זאת, אם A.exe טוען באופן דינמי B.dll באמצעות Assembly.Load וכדומה לאחר ביצוע, B.dll אינו תלות. שימוש .exe Ngen עבור A.exe אינו מהדר את .dll B. במקרה זה, הגדר את nativeImage ל- B.dll גם כן.
@Id
שם הזיהוי של התמונה המקורית. אל תתוחפף מזהים אחרים.
@Platform
ציין "32bit", "64bit" או "all". שנה את ההגדרות ב- 32bit או 64bit עבור היישום שאתה מתקין. הכל יוצר את שתי התמונות המקוריות, לכן ציין ספריות המתעברות בהתאם למצב הביצוע כגון "כל CPU".
@Priority
מתי להפעיל את .exe Ngen במהלך ההתקנה. אתה יכול לציין 0-3, אבל לקבלת מידע נוסף, אנא עיין באתר הרשמי.
תקציר
לאחר יצירת תוכנית ההתקנה, באפשרותך לראות שאם ההתקנה מצליחה, תמונה מקורית נוצרת ונרשמת בתיקיית ההרכבה.