Създаване на инсталационна програма на 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".
Получете 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/Продукт/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Редактация.
Отворете файла Product.wxs.
Изберете Файлове от иконата вляво. Изтрийте папките под ProgramFilesFolder.
Щракнете с десния бутон върху папката ProgramFilesFolder и изберете Импортиране на папка.
Изберете папката, в която искате да инсталирате файловете.
Към дървото се добавя набор от файлове.
За да се свържете с други параметри, изберете добавената папка и задайте "Id" обратно на "INSTALLFOLDER".
Създайте пряк път за менюто "Старт". изберете "Нов" и "Пряк път" от менюто с десен бутон на exe файла.
Когато се добави пряк път, изберете го и щракнете с десния бутон върху празното, за да добавите свойството.
Добавете следните параметри: (Промяна на уникалното име, така че да съответства на програмата.)
Стойност | на атрибута |
---|---|
ИД | ЛИТЪЛСАВИОРТРИАЛ. EXE_shortcut |
Име | Малък сабя пробен период |
Указател | ПрограмаМенюДир |
РаботнаДиректора | 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. Искам да обясня подробните настройки в отделна статия.