יצירת מתקין 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".

image

קבלו קוד בן 36 ספרות, כולל מקף, והגדירו אותו ל-Wix/Product/@Id.

<Wix>
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />

Wix/מוצר/@Name

זהו שם היישום המוצג בכל חלק במסך המתקין. זה יכול להיות גם השם שמופיע ברשימה הוספה והסרה של תוכניות.

<Wix>
  <Product Name="リトルセイバー 体験版" />

image

image

Wix/מוצר/@Manufacturer

הזן את שם היצרן. הוא מופיע כמחבר תוכנית ההתקנה או כמוציא לאור של רשימת התוכניות.

<Wix>
  <Product Manufacturer="ソーサリーフォース">

image

image

Wix/מוצר/ממשק משתמשRef/@Id

הזן מזהה המזהה איזה מסך להציג באשף ההתקנה. הפעם, מאחר שזו התצורה המינימלית להצגה והתקנה של הרשיון בלבד, צוין "WixUI_Minimal".

<Wix>
  <Product>
    <UIRef Id="WixUI_Minimal" />

אני חושב שהאתר הבא יהיה מועיל באיזה סוג של ייעוד ניתן לעשות.

שימוש בערכת הדו-שיח של WixUI

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.

image

פתח את הקובץ Product.wxs.

image

image

בחר קבצים מהסמל מימין. מחק את התיקיות מתחת לתיקיית קבצי התוכניות.

image

לחץ באמצעות לחצן העכבר הימני על התיקיה ProgramFilesFolder ובחר יבא תיקיה.

image

בחר את התיקיה שבה ברצונך להתקין את הקבצים.

image

ערכת קבצים נוספת לעץ.

image

כדי לשייך לפרמטרים אחרים, בחר את התיקיה שנוספה והגדר את "מזהה" בחזרה ל- "INSTALLFOLDER".

image

צור קיצור דרך עבור תפריט התחלה. בחר "חדש" ו"קיצור דרך" מתפריט הלחיצה הימנית של קובץ האקס.

image

בעת הוספת קיצור דרך, בחר אותו ולחץ באמצעות לחצן העכבר הימני על הריק כדי להוסיף את המאפיין.

image

הוסף את הפרמטרים הבאים: (שנה את השם הייחודי כך שיתאים לתוכנית).)

ערך תכונה
מזהה ליטלסביוריאל. EXE_shortcut
שם משפט חרב קטן
מדריך ProgramMenuDir
ספריית עבודה INSTALLDIR
סמל ליטלסביור. ICO
IconIndex 0
פרסם כן

image

לאחר מכן בחר את הכרטיסיה "תכונה", לחץ באמצעות לחצן העכבר הימני על "ProductFeature" ובחר בחר רכיבים להוספה.

image

בחר הכל.

image

נוסף.

image

שמר.

image

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.

image

התחל לבנות מפתרון בנייה.

image

כאשר הבניין מצליח, נוצר קובץ msi בתיקיה "bin\Release".

image

אם תנסה להפעיל אותו, תוכנית ההתקנה תתחיל.

image

לאחר השלמת ההתקנה, ייווצר קיצור דרך בתפריט התחלה.

image

הקובץ ממוקם בתיקיה קבצי תוכניות (x86).

image

היישום מופיע גם ב"תוכניות ופונקציות".

image

הפעל את היישום וודא שהוא פועל כראוי.

image

תקציר

כאן תיארנו את השלבים ליצירת מתקין MSI באמצעות Visual Studio ו-WiX. אני רוצה להסביר את ההגדרות המפורטות במאמר נפרד.