Створіть інсталятор 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/Product/@Id

Встановіть GUID, який ідентифікує застосунок.

Є багато інструментів для створення GUID, але це швидко використовувати інструменти, які поставляються з Visual Studio. Виберіть меню "Інструменти" і "Створити GUID".

image

Отримайте 36-значний код, включаючи дефіс, і встановіть його на Wix/Product/@Id.

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

Wix/Product/@Name

Це ім'я програми, яке відображається в кожній частині екрана інсталятора. Це також може бути ім'я, яке відображається у списку "Установка й видалення програм".

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

image

image

Wix/Product/@Manufacturer

Введіть назву виробника. Він відображається як автор інсталятора або видавець списку програм.

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

image

image

Wix/Product/UIRef/@Id

Введіть ідентифікатор, який визначає, який екран відображати в майстрі інсталяції. На цей раз, так як це мінімальна конфігурація для відображення і установки тільки ліцензії, "WixUI_Minimal" уточнюється.

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

Я думаю, що наступний сайт буде корисним в тому, яке призначення можна зробити.

Використання набору діалогових вікон WixUI

Wix/Product/WixВаріаторний/*

Визначає файл, який використовувати в інтерфейсі користувача майстра. Мінімальна конфігурація використовує три файли: Значення ідентифікатора фіксоване, а значення - це ім'я файлу.

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

Піктограма програми інсталяції

Він використовується для значків додатків, які з'являються в "Установка і видалення програм" і т.д.

У "SourceFile" елемента Icon вкажіть файл ico як відносний шлях з папки проекту.

"Властивість Id ="ARPPRODUCTICON" - це визначення зв'язку піктограми.

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

Wix/Fragment (конфігурація папки файлів)

Установлення конфігурації папки для інсталяції. Спочатку ви також розташуєте файли, але спочатку створите лише папки.

Значення "Ім'я" в "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 і виберіть пункт Імпортувати папку.

image

Виберіть папку, в якій потрібно інсталювати файли.

image

До дерева додається набір файлів.

image

Для того, щоб зв'язатися з іншими параметрами, виберіть додану папку і встановіть "Id" назад в "INSTALLFOLDER".

image

Створіть ярлик для меню "Пуск". виберіть "Створити" і "Ярлик" у меню правою кнопкою миші exe-файлу.

image

Коли ярлик додано, виділіть його та клацніть правою кнопкою миші, щоб додати властивість.

image

Додайте такі параметри: (Змініть унікальне ім'я відповідно до програми.)

Значення
атрибута
Ідентифікатор МАЛОВІОРТИАЛЬНИЙ. EXE_shortcut
Ім'я Малий суд над шаблем
Каталог ProgramMenuDir
Робочий напрямок INSTALLDIR
Ікона ЛІТТЛСАВІОР. ICO
ПіктограмаІндекс 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. Я хотів би пояснити детальні налаштування в окремій статті.