Tworzenie Instalatora Windows "MSI" przy użyciu WiX part2
Na początku
Ostatnim razem przygotowaliśmy niezbędne pliki i skonfigurowaliśmy projekt. Tym razem edytuj "Product.wxs" i dokonaj różnych ustawień instalatora.
Edytowanie ustawień instalacji (Product.wxs)
Zawartość pliku Product.wxs jest opisana w formacie XML. Istnieje wiele parametrów, ale najpierw wprowadzimy minimalne ustawienia, aby upewnić się, że instalator może zostać utworzony. Jeśli chcesz skonfigurować go bardziej szczegółowo, zapoznaj się z innym artykułem lub oficjalną stroną internetową.
W momencie tworzenia projektu kod wygląda następująco:
<?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>
Oto kilka rzeczy, które musisz zmienić: Dodaj tagi i atrybuty, które nie istnieją.
Wix/Produkt/@Id
Ustaw identyfikator GUID identyfikujący aplikację.
Istnieje wiele narzędzi do generowania identyfikatorów GUID, ale szybko można użyć narzędzi dołączonych do programu Visual Studio. Wybierz menu "Narzędzia" i "Utwórz identyfikator GUID".
Uzyskaj 36-cyfrowy kod, w tym łącznik, i ustaw go na Wix/Product/@Id.
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/Produkt/@Name
Jest to nazwa aplikacji wyświetlana w każdej części ekranu instalatora. Może to być również nazwa wyświetlana na liście Dodaj i usuń programy.
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/Produkt/@Manufacturer
Wprowadź nazwę producenta. Pojawia się jako autor instalatora lub wydawca listy programów.
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix/Produkt/UIRef/@Id
Wprowadź identyfikator identyfikujący ekran, który ma być wyświetlany w kreatorze instalacji. Tym razem, ponieważ jest to minimalna konfiguracja do wyświetlania i instalowania tylko licencji, określono "WixUI_Minimal".
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
Myślę, że poniższa strona będzie pomocna w tym, jakiego rodzaju oznaczenie można zrobić.
Korzystanie z zestawu dialogowego WixUI
Wix/Produkt/WixVariable/*
Określa plik, który ma być używany w interfejsie kreatora. Minimalna konfiguracja używa trzech plików: Wartość id jest stała, a wartość jest nazwą pliku.
<Wix>
<Product>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
Ikona aplikacji instalacyjnej
Jest używany do ikon aplikacji, które pojawiają się w "Dodaj i usuń programy" itp.
W "SourceFile" elementu Icon określ plik ico jako ścieżkę względną z folderu projektu.
"Property Id="ARPPRODUCTICON" jest definicją skojarzenia ikony.
<Wix>
<Product>
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
Wix/Fragment (konfiguracja folderu plików)
Ustawia konfigurację folderu do zainstalowania. Pierwotnie będziesz również umieszczać pliki, ale najpierw utworzysz tylko foldery.
Wartość "Name" ustawiona na "Id="ProgramMenuDir" jest nazwą folderu umieszczonego w skrócie menu Start. Ustaw również guids.
<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>
Dodawanie plików instalacyjnych
Można go również dodać do pliku Product.wxs ręcznie. Ponieważ identyfikator GUID jest wymagany dla pliku, trudno jest pracować z większą ilością plików. Aby dodać pliki, użyj WixEdit, aby je dodać.
Uruchom WixEdit.
Otwórz plik Product.wxs.
Wybierz Pliki z ikony po lewej stronie. Usuń foldery poniżej ProgramFilesFolder.
Kliknij prawym przyciskiem myszy folder ProgramFilesFolder i wybierz polecenie Importuj folder.
Wybierz folder, w którym chcesz zainstalować pliki.
Do drzewa zostanie dodany zestaw plików.
Aby skojarzyć z innymi parametrami, wybierz dodany folder i ustaw "Id" z powrotem na "INSTALLFOLDER".
Utwórz skrót do menu Start. wybierz "Nowy" i "Skrót" z menu prawego przycisku myszy pliku exe.
Po dodaniu skrótu zaznacz go i kliknij prawym przyciskiem myszy puste pole, aby dodać właściwość.
Dodaj następujące parametry: (Zmień unikatową nazwę, aby pasowała do programu).
Wartość | atrybutu |
---|---|
Id | MAŁYSAVIORTRIAL. EXE_shortcut |
Nazwa | Mały Proces Szabli |
Katalog | ProgramMenuDir |
WorkingDirectory | KATALOG INSTALACYJNY |
Ikona | LITTLESAVIOR. ICO |
IconIndex | 0 |
Reklamować | tak |
Następnie wybierz kartę "Funkcjonalność", kliknij prawym przyciskiem myszy "ProductFeature" i wybierz Wybierz komponenty do dodania.
Zaznacz wszystko.
Dodane.
Zapisać.
Product.wxs powinien wyglądać mniej więcej tak:
<?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>
Potwierdzenie kompilacji i uruchomienia
Dokonaj konfiguracji rozwiązania "Release" w visual studio.
Rozpocznij tworzenie od rozwiązania kompilacji.
Po pomyślnym zakończeniu tworzenia plik msi jest generowany w folderze "bin\Release".
Jeśli spróbujesz go uruchomić, instalator zostanie uruchomiony.
Po zakończeniu instalacji w menu Start zostanie utworzony skrót.
Plik zostanie umieszczony w folderze Program Files (x86).
Aplikacja pojawia się również w "Programach i funkcjach".
Uruchom aplikację i upewnij się, że działa poprawnie.
Streszczenie
Tutaj opisaliśmy kroki tworzenia instalatora MSI przy użyciu Visual Studio i WiX. Chciałbym wyjaśnić szczegółowe ustawienia w osobnym artykule.