Vytvoření instalačního programu systému Windows "MSI" pomocí WiX part2
Nejprve
Naposledy jsme připravili potřebné soubory a připravili projekt. Tentokrát upravte "Product.wxs" a proveďte různá nastavení instalačního programu.
Úprava nastavení instalace (Product.wxs)
Obsah souboru Product.wxs je popsán ve formátu XML. Existuje řada parametrů, ale nejprve provedeme minimální nastavení, abychom se ujistili, že instalační program může být vytvořen. Pokud jej chcete nastavit podrobněji, přečtěte si jiný článek nebo oficiální webové stránky.
V době vytvoření projektu vypadá 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>
Zde je několik věcí, které musíte změnit: Přidejte značky a atributy, které neexistují.
Wix/Product/@Id
Nastavte identifikátor GUID, který identifikuje aplikaci.
Existuje mnoho nástrojů pro generování identifikátoru GUID, ale je rychlé používat nástroje, které jsou dodávány se sadou Visual Studio. Vyberte nabídku "Nástroje" a "Vytvořit identifikátor GUID".
Získejte 36místný kód, včetně pomlčky, a nastavte ho na Wix/Product/@Id.
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/Product/@Name
Toto je název aplikace zobrazený v každé části obrazovky instalačního programu. Může to být také název, který se zobrazí v seznamu Přidat a odebrat programy.
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/Product/@Manufacturer
Zadejte název výrobce. Zobrazí se jako autor instalačního programu nebo vydavatel seznamu programů.
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix/Product/UIRef/@Id
Zadejte ID, které určuje, která obrazovka se má zobrazit v průvodci instalací. Tentokrát, protože se jedná o minimální konfiguraci pro zobrazení a instalaci pouze licence, je zadáno "WixUI_Minimal".
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
Myslím, že následující web bude užitečný v tom, jaký druh označení lze provést.
Wix/Product/WixVariable/*
Určuje soubor, který se má použít v uživatelském rozhraní průvodce. Minimální konfigurace používá tři soubory: Hodnota ID je pevná a Hodnota je název souboru.
<Wix>
<Product>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
Ikona instalační aplikace
Používá se pro ikony aplikací, které se zobrazují v části "Přidat a odebrat programy" atd.
V "SourceFile" elementu Icon zadejte soubor ico jako relativní cestu ze složky projektu.
"Property Id="ARPPRODUCTICON" je definice přidružení ikony.
<Wix>
<Product>
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
Wix/Fragment (konfigurace složky souboru)
Nastaví konfiguraci složky k instalaci. Původně budete také umísťovat soubory, ale nejprve vytvoříte pouze složky.
Hodnota "Jméno" nastavená na "Id="ProgramMenuDir" je název složky umístěné ve zkratce nabídky Start. Nastavte také vodítka.
<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>
Přidání instalačních souborů
Můžete jej také přidat do souboru Product.wxs ručně. Vzhledem k tomu, že pro soubor je vyžadován identifikátor GUID, je obtížné pracovat s více soubory. Chcete-li tedy přidat soubory, přidejte je pomocí WixEdit.
Spusťte WixEdit.
Otevřete soubor Product.wxs.
Vyberte Soubory z ikony vlevo. Odstraňte složky pod ProgramFilesFolder.
Klikněte pravým tlačítkem myši na složku ProgramFilesFolder a vyberte Importovat složku.
Vyberte složku, do které chcete soubory nainstalovat.
Do stromu je přidána sada souborů.
Chcete-li přidružit k dalším parametrům, vyberte přidanou složku a nastavte "Id" zpět na "INSTALLFOLDER".
Vytvořte zástupce nabídky Start. vyberte "Nový" a "Zkratka" z nabídky pravým tlačítkem myši exe souboru.
Když je zkratka přidána, vyberte ji a kliknutím pravým tlačítkem myši přidejte vlastnost.
Přidejte následující parametry: (Změňte jedinečný název tak, aby odpovídal programu.)
Hodnota atributu | |
---|---|
Id | LITTLESAVIORTRIAL. EXE_shortcut |
Jméno | Malý Saber Trial |
Adresář | ProgramMenuDir |
WorkingDirectory | INSTALLDIR |
Ikona | LITTLESAVIOR. ICO |
IconIndex | 0 |
Inzerovat | Ano |
Poté vyberte kartu "Funkce", klikněte pravým tlačítkem myši na "ProductFeature" a vyberte Vybrat komponenty, které chcete přidat.
Vyberte vše.
Přidán.
Uložit.
Product.wxs by měl vypadat nějak 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>
Sestavení a spuštění potvrzení
Proveďte konfiguraci řešení "Release" ve Visual Studiu.
Začněte stavět z řešení sestavení.
Po úspěšném sestavení se ve složce "bin\Release" vygeneruje soubor MSI.
Pokud se jej pokusíte spustit, instalační program se spustí.
Po dokončení instalace bude v nabídce Start vytvořena zkratka.
Soubor je umístěn ve složce Program Files (x86).
Aplikace se také zobrazí v "Programy a funkce".
Spusťte aplikaci a ujistěte se, že funguje správně.
Shrnutí
Zde jsme popsali kroky k vytvoření instalačního programu MSI pomocí sady Visual Studio a WiX. Rád bych vysvětlil podrobná nastavení v samostatném článku.