Instalator w pliku msi część 4

W poprzedniej części stworzyłem instalator z interfejsem użytkownika. W tej części zbrandujemy instalator. Po pierwsze wymienię standardowe tło dla okna startowego:

image

W tym celu należ stworzyć własną bitmapę( niestety obsługiwany jest tylko format .bmp) koniecznie o rozmiarze 493 na 312, można również zmodyfikować istniejącą. Nowa bitmapa będzie stanowiła tło całego okna, poza paskiem przycisków.

Aby powiedzieć WiX, żeby podmienić tło należy zmodyfikować wartość zmiennej WixUIDialogBmp:

<WixVariable Id="WixUIDialogBmp" Value="WixUI_Bmp_Dialog.bmp" /> 

Następnie dodam własną licencję użytkownika i wymienię nagłówek okna (biały pasek z brązową płytką cd):

image

W tym celu stworzę bitmapę o rozmiarze 493 na 58 oraz plik Rich Text Format z tekstem mojej licencji. Podobnie jak w poprzednim przypadku muszę tylko ustawić odpowiednie zmienne:

<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIBannerBmp" Value="WixUI_Bmp_Banner.bmp" />

Po skompilowaniu okna mogą wyglądać np tak:

image

image

Jak dodatkowy bonus dodam możliwość uruchomienia instalowanej aplikacji na samym końcu:

image

W tym celu trzeba po pierwsze dodać odpowiedni checkbox na ostatnim oknie:

<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Skonfiguruj i uruchom aplikację"/>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1"/>

Stworzę również akcję odpowidzialną za uruchomienie aplikacji:

<CustomAction Id="Uruchom" Directory="INSTALLLOCATION"
ExeCommand="[INSTALLLOCATION]WindowsFormsApplication1.exe"
Return="asyncNoWait"/>

Ważne jest pole Return i wartość asyncNoWait, która oznacza że instalator nie musi czekać na wynik działania aplikacji i może kontynuować normalne działanie..

Na koniec podepnę zdarzenie do przycisku ?Zakończ? na ostanim oknie polegające na uruchomieniu akcji, ale tylko gdy zaznaczony jest checkbox:

<UI>
  <Publish Dialog="ExitDialog" Control="Finish" Order="2" Event="DoAction" Value="Uruchom">
    WIXUI_EXITDIALOGOPTIONALCHECKBOX
  </Publish>
</UI>

Wszystko jeszcze raz można zobaczyć na filmie

3 thoughts on “Instalator w pliku msi część 4

  1. Dawid Węgrzyn says:

    Hej, mam małe pytanie czy istnieje możliwość pozbycia się napisów w oknie licencji, chodzi mi dokładnie o napis w nagłówku “Umowa licencyjna użytkownika końcowego” czy trzeba to zrobić za pomocą własnych okien ? Z góry dzięki za pomoc.

  2. jeśl modyfikujesz UI najlepiej jest stworzyć własny wygląd od nowa – źródła domyślnych dialogów są w src\ext\UIExtension\wixlib w źródłach od WiX, da Ci to praktycznie wolną rękę w dalszych modyfikacjach i będzie elastyczne.

    Jeśli tylko chcesz podmienić tekst w jednym oknie możesz zastosować takiego haka:
    1. stworzyć w projekcie własną lokalizację – plik .wxl
    2. w pliku dodać lokalizację dla dowolnego elementu, w twoim wypadku coś takiego:
    <String Id="LicenseAgreementDlgTitle" Overridable="yes">{\WixUI_Font_Title}Umowa licencyjna użytkownika końcowego </String>

  3. Dawid Węgrzyn says:

    Ok, dzięki za pomoc. Pozdrawiam

Leave a Reply

Your email address will not be published. Required fields are marked *