Bartek Szafko

all of the bits and pieces

Instalator w pliku msi część 4

with 3 comments

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

Inne podobne artykuły:

Written by Bartłomiej Szafko

December 21st, 2008 at 12:59 pm

Posted in WiX

with 3 comments to “Instalator w pliku msi część 4”

Subscribe comments with RSS. TrackBack URL.

  1. Dawid Węgrzyn

    1 Oct 09 at 11:42

    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

    16 Nov 09 at 11:11

    Ok, dzięki za pomoc. Pozdrawiam

Leave a Reply