Создание установщика Windows "MSI" с помощью WiX часть2

Дата создания страницы :

Сначала

В прошлый раз мы подготовили необходимые файлы и настроили проект. На этот раз отредактируйте "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/Продукт/UIRef/@Id

Введите идентификатор, определяющий, какой экран должен отображаться в мастере установки. На этот раз, так как это минимальная конфигурация для отображения и установки только лицензии, указывается «WixUI_Minimal».

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

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

Использование набора диалоговых окон WixUI

Wix/Продукт/WixVariable/*

Задает файл, используемый в пользовательском интерфейсе мастера. Минимальная конфигурация использует три файла: Значение id является фиксированным, а Значение — это имя файла.

<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 (конфигурация папки с файлами)

Задает конфигурацию папки для установки. Первоначально вы также будете размещать файлы, но сначала создавать только папки.

Значение "Name" в "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

Выберите Файлы на значке слева. Удалите папки под папкой ProgramFilesFolder.

image

Щелкните правой кнопкой мыши папку ProgramFilesFolder и выберите Импорт папки.

image

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

image

В дерево добавляется набор файлов.

image

Для того, чтобы связаться с другими параметрами, выберите добавленную папку и установите "Id" обратно в "INSTALLFOLDER".

image

Создайте ярлык для меню Пуск. выберите «Создать» и «Ярлык» в контекстном меню исполняемого файла.

image

После добавления ярлыка выберите его и щелкните правой кнопкой мыши пустое, чтобы добавить свойство.

image

Добавьте следующие параметры: (Измените уникальное имя в соответствии с программой.)

Значение атрибута
Идентификатор МАЛЕНЬКИЙ САВИРТОРТРИАЛЬНЫЙ. EXE_shortcut
Имя Испытание маленькой сабли
Каталог ПрограммаМенюДир
РабочийКаталог УСТАНОВИТЬДИР
Икона МАЛЕНЬКИЙ САВЬЕР. 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

При успешном построении в папке "bin\Release" создается MSI-файл.

image

Если вы попытаетесь запустить его, установщик запустится.

image

После завершения установки в меню Пуск будет создан ярлык.

image

Файл помещается в папку Program Files (x86).

image

Приложение также появляется в разделе «Программы и функции».

image

Запустите приложение и убедитесь, что оно работает правильно.

image

Сводка

Здесь мы описали шаги по созданию установщика MSI с помощью Visual Studio и WiX. Подробно о настройках хотелось бы рассказать в отдельной статье.