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