ایجاد نصب کننده ویندوز "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 وجود دارد، اما استفاده از ابزارهایی که با ویژوال استودیو می آیند سریع است. منوی "Tools" و "Create GUID" را انتخاب کنید.

image

دریافت یک کد 36 رقمی، از جمله hyphen، و تنظیم آن را به Wix / محصول / @Id.

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

Wix / محصول / @Name

این نام برنامه نمایش داده شده در هر قسمت از صفحه نصب است. همچنین می تواند نامی باشد که در لیست برنامه های افزودن و حذف ظاهر می شود.

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

image

image

Wix / محصول / @Manufacturer

نام سازنده را وارد کنید. به عنوان نویسنده نصب کننده یا ناشر لیست برنامه ظاهر می شود.

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

image

image

Wix / محصول / UIRef / @Id

شناسه ای را وارد کنید که مشخص می کند چه صفحه نمایش در سهل آموز نصب نمایش داده می شود. این بار، از آنجا که حداقل پیکربندی برای نمایش و نصب تنها مجوز است، "WixUI_Minimal" مشخص شده است.

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

من فکر می کنم که سایت زیر مفید خواهد بود در چه نوع تعیین می تواند انجام شود.

با استفاده از مجموعه گفتگوی WixUI

Wix /Product/WixVariable/*

پرونده را برای استفاده در UI سهل آموز مشخص می کند. حداقل پیکربندی از سه فایل استفاده می کند: مقدار شناسه ثابت است و مقدار نام فایل است.

<Wix>
  <Product>
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />

نماد برنامه نصب

برای آیکون های کاربردی که در "افزودن و حذف برنامه ها" و غیره ظاهر می شوند، استفاده می شود.

در "SourceFile" عنصر Icon، فایل ico را به عنوان یک مسیر نسبی از پوشه پروژه مشخص کنید.

"Property Id="ARPPRODUCTICON" تعریف انجمن آیکون است.

<Wix>
  <Product>
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />

Wix / قطعه (پیکربندی پوشه فایل)

تنظیمات پوشه را برای نصب تنظیم می کند. در اصل، شما همچنین فایل ها را قرار دهید، اما ابتدا فقط پوشه ها را ایجاد کنید.

مقدار مجموعه "Name" به "Id="ProgramMenuDir" نام پوشه ای است که در میانبر منوی شروع قرار داده شده است. هدایت ها را هم تنظیم کنید.

<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

پرونده ها را از نماد سمت چپ انتخاب کنید. پوشه های زیر ProgramFilesFolder را حذف کنید.

image

روی پوشه ProgramFilesFolder کلیک راست کرده و پوشه Import را انتخاب کنید.

image

پوشه ای را که می خواهید فایل ها را نصب کنید انتخاب کنید.

image

مجموعه ای از فایل ها به درخت اضافه می شود.

image

به منظور مرتبط شدن با پارامترهای دیگر، پوشه اضافه شده را انتخاب کنید و "Id" را دوباره به "INSTALLFOLDER" تنظیم کنید.

image

یک میانبر برای منوی Start ایجاد کنید. "جدید" و "میانبر" را از منوی کلیک راست فایل exe انتخاب کنید.

image

هنگامی که میانبر اضافه شد، آن را انتخاب کنید و روی خالی کلیک راست کنید تا ملک اضافه شود.

image

پارامترهای زیر را اضافه کنید: (تغییر نام منحصر به فرد برای مطابقت با برنامه.)

مقدار
ویژگی
شناسه "تالي ساويرترال". EXE_shortcut
نام محاکمه صابر کوچک
دایرکتوری ProgramMenuDir
WorkingDirectory INSTALLDIR
آیکون LITTLESAVIOR. IĈO
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>

ساخت و اجرای تایید

پیکربندی راه حل را "انتشار" در ویژوال استودیو.

image

شروع ساختمان از راه حل ساخت.

image

هنگامی که ساختمان موفق است، یک فایل msi در پوشه "bin\Release" تولید می شود.

image

اگر سعی کنید آن را اجرا کنید، نصب کننده شروع خواهد شد.

image

هنگامی که نصب کامل شد، یک میانبر در منوی Start ایجاد خواهد شد.

image

فایل در پوشه فایل های برنامه (x86) قرار داده شده است.

image

برنامه همچنین در "برنامه ها و توابع" ظاهر می شود.

image

اجرای برنامه و مطمئن شوید که آن را به درستی کار می کند.

image

خلاصه

در اینجا مراحل ایجاد یک نصب کننده MSI را با استفاده از Visual Studio و WiX شرح داده اند. من می خواهم تنظیمات دقیق را در یک مقاله جداگانه توضیح دهم.