Vytvorenie inštalátora systému Windows "MSI" pomocou časti WiX2
Najskôr
Naposledy sme pripravili potrebné súbory a nastavili projekt. Tentokrát upravte "Product.wxs" a vykonajte rôzne nastavenia inštalátora.
Úprava nastavení inštalácie (Product.wxs)
Obsah súboru Product.wxs je popísaný vo formáte XML. Existuje niekoľko parametrov, ale najprv vykonáme minimálne nastavenia, aby sme sa uistili, že inštalátor môže byť vytvorený. Ak ho chcete nastaviť podrobnejšie, pozrite si iný článok alebo oficiálnu webovú stránku.
V čase vytvorenia projektu vyzerá kód takto:
<?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>
Tu je niekoľko vecí, ktoré musíte zmeniť: Pridajte značky a atribúty, ktoré neexistujú.
Wix/Produkt/@Id
Nastavte identifikátor GUID, ktorý identifikuje aplikáciu.
Existuje mnoho nástrojov na generovanie identifikátora GUID, ale je rýchle použiť nástroje, ktoré sú k dispozícii s Visual Studio. Vyberte menu "Nástroje" a "Vytvoriť identifikátor GUID".
Získajte 36-miestny kód vrátane spojovníka a nastavte ho na položku Wix/Product/@Id.
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/Produkt/@Name
Toto je názov aplikácie zobrazený v každej časti obrazovky inštalátora. Môže to byť aj názov, ktorý sa zobrazí v zozname Pridať a odstrániť programy.
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/Produkt/@Manufacturer
Zadajte názov výrobcu. Zobrazí sa ako autor inštalátora alebo vydavateľ zoznamu programov.
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix/Product/UIRef/@Id
Zadajte identifikáciu, ktorá identifikuje, ktorá obrazovka sa má zobraziť v Sprievodcovi inštaláciou. Tentokrát, pretože je to minimálna konfigurácia na zobrazenie a inštaláciu iba licencie, je zadaný "WixUI_Minimal".
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
Myslím si, že nasledujúca stránka bude užitočná v tom, aký druh označenia možno vykonať.
Používanie dialógového okna WixUI
Wix/Product/WixVariable/*
Určuje súbor, ktorý sa má použiť v používateľskému ui sprievodcu. Minimálna konfigurácia používa tri súbory: Hodnota identifikácie je pevná a hodnota je názov súboru.
<Wix>
<Product>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
Ikona aplikácie inštalácie
Používa sa pre ikony aplikácií, ktoré sa zobrazujú v časti "Pridať a odstrániť programy" atď.
V časti Zdrojový súbor prvku Ikona zadajte súbor ico ako relatívnu cestu z priečinka projektu.
"Property Id="ARPPRODUCTICON" je asociačná definícia ikony.
<Wix>
<Product>
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
Wix/Fragment (konfigurácia priečinka súborov)
Nastaví konfiguráciu priečinka na inštaláciu. Pôvodne budete tiež umiestňovať súbory, ale najprv vytvoríte iba priečinky.
Hodnota "Name" nastavená na "Id="ProgramMenuDir" je názov priečinka umiestneného v skratke ponuky Štart. Nastavte aj guidy.
<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>
Pridanie inštalačných súborov
Môžete ho tiež pridať do súboru Product.wxs ručne. Keďže identifikátor GUID je potrebný pre súbor, je ťažké pracovať s viacerými súbormi. Ak chcete pridať súbory, pridajte ich pomocou funkcie WixEdit.
Spustite WixEdit.
Otvorte súbor Product.wxs.
Vyberte položku Súbory na ľavej strane. Odstráňte priečinky pod položkou ProgramFilesFolder.
Kliknite pravým tlačidlom myši na priečinok ProgramFilesFolder a vyberte položku Importovať priečinok.
Vyberte priečinok, do ktorého chcete súbory nainštalovať.
Do stromu sa pridá množina súborov.
Ak chcete priradiť k iným parametrom, vyberte pridaný priečinok a nastavte "Id" späť na "INSTALLFOLDER".
Vytvorte odkaz pre ponuku Štart. V ponuke exe vyberte možnosť "Nové" a "Odkaz".
Po pridaní skratky ju vyberte a kliknutím pravým tlačidlom myši pridajte vlastnosť.
Pridajte nasledujúce parametre: (Zmeňte jedinečný názov tak, aby zodpovedal programu.)
Hodnotaatribútu | |
---|---|
Id | LITTLESAVIORTRIAL. EXE_shortcut |
Meno | Malý šaberský proces |
Adresár | ProgramMenuDir |
WorkingDirectory | INSTALLDIR |
Ikona | LITTLESAVIOR. ICO |
IconIndex | 0 |
Inzerovať | áno |
Potom vyberte kartu "Funkcia", kliknite pravým tlačidlom myši na "ProductFeature" a vyberte položku Vybrať súčasti, ktoré chcete pridať.
Vyberte všetko.
Pridalo.
Zachrániť.
Product.wxs by mali vyzerať asi takto:
<?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>
Vytvorenie a spustenie potvrdenia
Vytvorte konfiguráciu riešenia "Release" vo Visual Studio.
Začnite stavať z riešenia build.
Po úspešnom vytvorení budovy sa v priečinku "bin\Release" vygeneruje súbor msi.
Ak sa ho pokúsite spustiť, inštalátor sa spustí.
Po dokončení inštalácie sa v ponuke Štart vytvorí odkaz.
Súbor sa umiestni do priečinka Program Files (x86).
Aplikácia sa zobrazí aj v časti "Programy a funkcie".
Spustite aplikáciu a uistite sa, že funguje správne.
Súhrn
Tu sme opísali kroky na vytvorenie inštalátora MSI pomocou Visual Studio a WiX. Podrobné nastavenia by som chcel vysvetliť v samostatnom článku.