Создание установщика 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».
Получите 36-значный код, включая дефис, и установите для него значение Wix/Product/@Id.
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/Продукт/@Name
Это имя приложения, отображаемое в каждой части экрана установщика. Это также может быть имя, отображаемые в списке Установка и удаление программ.
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/Продукт/@Manufacturer
Введите имя производителя. Он отображается как автор установщика или издатель списка программ.
<Wix>
<Product Manufacturer="ソーサリーフォース">
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.
Откройте файл Product.wxs.
Выберите Файлы на значке слева. Удалите папки под папкой ProgramFilesFolder.
Щелкните правой кнопкой мыши папку ProgramFilesFolder и выберите Импорт папки.
Выберите папку, в которую вы хотите установить файлы.
В дерево добавляется набор файлов.
Для того, чтобы связаться с другими параметрами, выберите добавленную папку и установите "Id" обратно в "INSTALLFOLDER".
Создайте ярлык для меню Пуск. выберите «Создать» и «Ярлык» в контекстном меню исполняемого файла.
После добавления ярлыка выберите его и щелкните правой кнопкой мыши пустое, чтобы добавить свойство.
Добавьте следующие параметры: (Измените уникальное имя в соответствии с программой.)
Значение атрибута | |
---|---|
Идентификатор | МАЛЕНЬКИЙ САВИРТОРТРИАЛЬНЫЙ. EXE_shortcut |
Имя | Испытание маленькой сабли |
Каталог | ПрограммаМенюДир |
РабочийКаталог | УСТАНОВИТЬДИР |
Икона | МАЛЕНЬКИЙ САВЬЕР. ICO |
ИконкаИндекс | 0 |
Рекламировать | да |
Затем выберите вкладку «Компонент», щелкните правой кнопкой мыши «ProductFeature» и выберите «Выбрать компоненты для добавления».
Выберите все.
Добавили.
Спасать.
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.
Начните сборку с решений сборки.
При успешном построении в папке "bin\Release" создается MSI-файл.
Если вы попытаетесь запустить его, установщик запустится.
После завершения установки в меню Пуск будет создан ярлык.
Файл помещается в папку Program Files (x86).
Приложение также появляется в разделе «Программы и функции».
Запустите приложение и убедитесь, что оно работает правильно.
Сводка
Здесь мы описали шаги по созданию установщика MSI с помощью Visual Studio и WiX. Подробно о настройках хотелось бы рассказать в отдельной статье.