Създаване на инсталационна програма на 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/Продукт/UIRef/@Id

Въведете ИД, който идентифицира какъв екран да се показва в съветника за инсталиране. Този път, тъй като е минималната конфигурация за показване и инсталиране само на лиценза, е зададено "WixUI_Minimal".

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

Мисля, че следният сайт ще бъде от полза в какъв вид обозначение може да се направи.

Използване на набора от диалогови прозорци На WixUI

Wix/Продукт/WixПроизводимо/*

Задава файла, който да се използва в потребителския интерфейс на съветника. Минималната конфигурация използва три файла: Стойността на ид е фиксирана и Стойността е името на файла.

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

Икона на инсталационното приложение

Използва се за икони на приложения, които се появяват в "Добавяне и премахване на програми" и др.

В "SourceFile" на елемента Икона задайте файла ICO като относителен път от папката на проекта.

"ИД на собственост="ARPPRODUCTICON" е дефиницията на асоциацията на иконата.

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

Wix/Фрагмент (конфигурация на файловата папка)

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

Стойността на "Име", зададена на "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, за да ги добавите.

Стартиране на WixРедактация.

image

Отворете файла Product.wxs.

image

image

Изберете Файлове от иконата вляво. Изтрийте папките под ProgramFilesFolder.

image

Щракнете с десния бутон върху папката ProgramFilesFolder и изберете Импортиране на папка.

image

Изберете папката, в която искате да инсталирате файловете.

image

Към дървото се добавя набор от файлове.

image

За да се свържете с други параметри, изберете добавената папка и задайте "Id" обратно на "INSTALLFOLDER".

image

Създайте пряк път за менюто "Старт". изберете "Нов" и "Пряк път" от менюто с десен бутон на exe файла.

image

Когато се добави пряк път, изберете го и щракнете с десния бутон върху празното, за да добавите свойството.

image

Добавете следните параметри: (Промяна на уникалното име, така че да съответства на програмата.)

Стойност на атрибута
ИД ЛИТЪЛСАВИОРТРИАЛ. EXE_shortcut
Име Малък сабя пробен период
Указател ПрограмаМенюДир
РаботнаДиректора 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. Искам да обясня подробните настройки в отделна статия.