Tworzenie Instalatora Windows "MSI" przy użyciu WiX part2

Data utworzenia strony :

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".

image

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="リトルセイバー 体験版" />

image

image

Wix/Produkt/@Manufacturer

Wprowadź nazwę producenta. Pojawia się jako autor instalatora lub wydawca listy programów.

<Wix>
  <Product Manufacturer="ソーサリーフォース">

image

image

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.

image

Otwórz plik Product.wxs.

image

image

Wybierz Pliki z ikony po lewej stronie. Usuń foldery poniżej ProgramFilesFolder.

image

Kliknij prawym przyciskiem myszy folder ProgramFilesFolder i wybierz polecenie Importuj folder.

image

Wybierz folder, w którym chcesz zainstalować pliki.

image

Do drzewa zostanie dodany zestaw plików.

image

Aby skojarzyć z innymi parametrami, wybierz dodany folder i ustaw "Id" z powrotem na "INSTALLFOLDER".

image

Utwórz skrót do menu Start. wybierz "Nowy" i "Skrót" z menu prawego przycisku myszy pliku exe.

image

Po dodaniu skrótu zaznacz go i kliknij prawym przyciskiem myszy puste pole, aby dodać właściwość.

image

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

image

Następnie wybierz kartę "Funkcjonalność", kliknij prawym przyciskiem myszy "ProductFeature" i wybierz Wybierz komponenty do dodania.

image

Zaznacz wszystko.

image

Dodane.

image

Zapisać.

image

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.

image

Rozpocznij tworzenie od rozwiązania kompilacji.

image

Po pomyślnym zakończeniu tworzenia plik msi jest generowany w folderze "bin\Release".

image

Jeśli spróbujesz go uruchomić, instalator zostanie uruchomiony.

image

Po zakończeniu instalacji w menu Start zostanie utworzony skrót.

image

Plik zostanie umieszczony w folderze Program Files (x86).

image

Aplikacja pojawia się również w "Programach i funkcjach".

image

Uruchom aplikację i upewnij się, że działa poprawnie.

image

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.