יצירת מתקין Windows "MSI" באמצעות WiX part2
בהתחלה
בפעם האחרונה, הכנו את הקבצים הדרושים והגדרנו את הפרויקט. הפעם, לערוך "Product.wxs" ולעשות הגדרות שונות של המתקין.
עריכת הגדרות התקנה (Product.wxs)
התוכן של הקובץ Product.wxs מתואר בתבנית XML. ישנם מספר פרמטרים, אך תחילה נבצע את ההגדרות המינימליות כדי לוודא שניתן ליצור את המתקין. אם ברצונך להגדיר אותו בפירוט רב יותר, עיין במאמר אחר או באתר הרשמי.
בעת יצירת הפרוייקט, הקוד נראה כך:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SetupLittleSaviorTrial_x86" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
<!-- <Component Id="ProductComponent"> -->
<!-- TODO: Insert files, registry keys, and other resources here. -->
<!-- </Component> -->
</ComponentGroup>
</Fragment>
</Wix>
להלן כמה דברים שעליך לשנות: הוסף תגים ותכונות שאינם קיימים.
Wix/מוצר/@Id
הגדר את ה- GUID המזהה את היישום.
ישנם כלים רבים ליצירת GUID, אך הוא מהיר להשתמש בכלים שמגיעים עם Visual Studio. בחר את התפריט "כלים" ו"צור GUID".
קבלו קוד בן 36 ספרות, כולל מקף, והגדירו אותו ל-Wix/Product/@Id.
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/מוצר/@Name
זהו שם היישום המוצג בכל חלק במסך המתקין. זה יכול להיות גם השם שמופיע ברשימה הוספה והסרה של תוכניות.
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/מוצר/@Manufacturer
הזן את שם היצרן. הוא מופיע כמחבר תוכנית ההתקנה או כמוציא לאור של רשימת התוכניות.
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix/מוצר/ממשק משתמשRef/@Id
הזן מזהה המזהה איזה מסך להציג באשף ההתקנה. הפעם, מאחר שזו התצורה המינימלית להצגה והתקנה של הרשיון בלבד, צוין "WixUI_Minimal".
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
אני חושב שהאתר הבא יהיה מועיל באיזה סוג של ייעוד ניתן לעשות.
Wix/מוצר/WixVariable/*
ציון הקובץ לשימוש בממשק המשתמש של האשף. התצורה המינימלית משתמשת בשלושה קבצים: ערך המזהה קבוע והערך הוא שם הקובץ.
<Wix>
<Product>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
סמל יישום התקנה
הוא משמש עבור סמלי יישומים המופיעים "הוספה והסרה של תוכניות", וכו '.
ב-"SourceFile" של הרכיב Icon, ציין את קובץ ה- ico נתיב יחסי מתיקיית הפרוייקט.
"מזהה מאפיין="ARPPRODUCTICON" היא הגדרת השיוך של הסמל.
<Wix>
<Product>
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
Wix/Fragment (תצורת תיקיית קבצים)
הגדרת תצורת התיקיה להתקנה. במקור, תוכל גם למקם קבצים, אך ליצור רק תיקיות תחילה.
הערך של "שם" המוגדר כ- "Id="ProgramMenuDir" הוא שם התיקיה הממוקמת בקיצור הדרך של תפריט התחלה. הגדר גם מקורות Guid.
<Wix>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
<Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Fragment>
הוספת קבצי התקנה
באפשרותך גם להוסיף אותו לקובץ Product.wxs באופן ידני. מאחר שנדרש GUID עבור קובץ, קשה לעבוד עם קבצים נוספים. לכן, כדי להוסיף קבצים, השתמשו ב-WixEdit כדי להוסיף אותם.
השק את WixEdit.
פתח את הקובץ Product.wxs.
בחר קבצים מהסמל מימין. מחק את התיקיות מתחת לתיקיית קבצי התוכניות.
לחץ באמצעות לחצן העכבר הימני על התיקיה ProgramFilesFolder ובחר יבא תיקיה.
בחר את התיקיה שבה ברצונך להתקין את הקבצים.
ערכת קבצים נוספת לעץ.
כדי לשייך לפרמטרים אחרים, בחר את התיקיה שנוספה והגדר את "מזהה" בחזרה ל- "INSTALLFOLDER".
צור קיצור דרך עבור תפריט התחלה. בחר "חדש" ו"קיצור דרך" מתפריט הלחיצה הימנית של קובץ האקס.
בעת הוספת קיצור דרך, בחר אותו ולחץ באמצעות לחצן העכבר הימני על הריק כדי להוסיף את המאפיין.
הוסף את הפרמטרים הבאים: (שנה את השם הייחודי כך שיתאים לתוכנית).)
ערך תכונה | |
---|---|
מזהה | ליטלסביוריאל. EXE_shortcut |
שם | משפט חרב קטן |
מדריך | ProgramMenuDir |
ספריית עבודה | INSTALLDIR |
סמל | ליטלסביור. ICO |
IconIndex | 0 |
פרסם | כן |
לאחר מכן בחר את הכרטיסיה "תכונה", לחץ באמצעות לחצן העכבר הימני על "ProductFeature" ובחר בחר רכיבים להוספה.
בחר הכל.
נוסף.
שמר.
Product.wxs צריך להיראות משהו כזה:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Name="リトルセイバー 体験版" Language="1033" Version="1.0.0.0" Manufacturer="ソーサリーフォース" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<UIRef Id="WixUI_Minimal" />
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
<Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentRef Id="LITTLESAVIOR.ICO" />
<ComponentRef Id="LITTLESAVIORTRIAL.EXE" />
<ComponentRef Id="LITTLESAVIORTRIAL.EXE.CONFIG" />
<ComponentRef Id="ProgramMenuDir" />
</Feature>
<UI />
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
<Component Id="LITTLESAVIOR.ICO" DiskId="1" Guid="0B4DD82C-C6EF-4299-8EAB-4F9BB35FD952">
<File Id="LITTLESAVIOR.ICO" Name="LittleSavior.ico" Source="LittleSaviorTrial\LittleSavior.ico" />
</Component>
<Component Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="8D805936-A25E-4DA6-9A0A-A5BDB2AD768D">
<File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
<Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="リトルセイバー 体験版" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
</File>
</Component>
<Component Id="LITTLESAVIORTRIAL.EXE.CONFIG" DiskId="1" Guid="790C427A-A72C-4444-ACD6-ECF32AA788AD">
<File Id="LITTLESAVIORTRIAL.EXE.CONFIG" Name="LittleSaviorTrial.exe.config" Source="LittleSaviorTrial\LittleSaviorTrial.exe.config" />
</Component>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
<Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
</ComponentGroup>
</Fragment>
</Wix>
אישור בנייה והפעלה
הפוך את תצורת הפתרון "שחרור" ב- Visual Studio.
התחל לבנות מפתרון בנייה.
כאשר הבניין מצליח, נוצר קובץ msi בתיקיה "bin\Release".
אם תנסה להפעיל אותו, תוכנית ההתקנה תתחיל.
לאחר השלמת ההתקנה, ייווצר קיצור דרך בתפריט התחלה.
הקובץ ממוקם בתיקיה קבצי תוכניות (x86).
היישום מופיע גם ב"תוכניות ופונקציות".
הפעל את היישום וודא שהוא פועל כראוי.
תקציר
כאן תיארנו את השלבים ליצירת מתקין MSI באמצעות Visual Studio ו-WiX. אני רוצה להסביר את ההגדרות המפורטות במאמר נפרד.