Wix Toolset – stwórz instalator – Wstęp

Napisałem piękny i profesjonalnie wyglądający program. Chciałem go pokazać innym. Czułem w środku, że nie profesjonalnie jest przekazać .zip i kazać moim użytkownikom, go rozpakować i stworzyć sobie skróty do programu w menu start.

Mój program zasługuje na lepsze traktowanie goddamn it.

W mojej pracy piszę aplikacje desktopowe, a do nich tworzone są instalatory przy użyciu Wix Toolset. Mój program jest desktopowy więc tego samego zestawu narzędzi.

Z Wix Toolset opiera się kilku programach (które można pobrać z strony za darmo) i na plikach XML. Pliki XML są kompilowane do plików .msi oraz do .exe.

Teoretycznie z Wix można korzystać z ścieżki poleceń i notatnika; równie dobrze można wybrać nóż do masła w celu wykonania sepuku.

Skupię się na wykorzystaniu Visual Studio do ułatwienia sobie życia.

Do dobrej Wixy (hehehe) potrzebujemy

  • Visual Studio (ja używam 2017)
  • Projekt z kodem, który chcemy zainstalować
  • Wix Toolset – programy kompilujące XMLe
  • Wix Toolset Visual Studio 2017 Extension – Dodaje potrzebne projekty
  • Wax – To rozszerzenie instaluje się po zainstalowaniu powyższych rzeczy i restarcie Visual Studio. Nie chcesz mocno myśleć przy tworzeniu instalatora? potrzebujesz Waxa.
  • Otwarty GUID Generator – na jednym z monitorów

Tworzenie projektów do instalatora:

new_project_wix

Pierwsza sprawa wersja v3 czy v4. Szybka odpowiedź v3, bo dokumentacja do v4 jest comming soon od paru lat.

Potrzebujemy przynajmniej dwa projekty.

  • Setup Project for WiX v3, którego wynikiem jest plik .msi
  • Bootstraper Project for WiX v3, którego wynikiem jest plik .exe

Plik .msi to plik Windows Installer, który pracuje nad instalacją jednego produktu. Exe z projektu Bootstraper instaluje jeden lub więcej produktów przy użyciu plików .msi.

Myśl o nich tak:

  • .msi część biznesowa instalatora
  • .exe cześć UI instalatora

Mając te projekty założone. Do projektu Setup można dodać referencje do projektu – naszego programu do zainstalowania.

Również do Setup przyda się dodać referencje do biblioteki pomocniczej instalowanej razem z Wix Toolset dostępnej pod ścieżką C:\Program Files (x86)\WiX Toolset v3.11\bin\WixUtilExtension.dll

A do projetu Bootstrap trzeba dodać referencje do projektu Setup. Będzie też potrzebna referencja do WixBalExtension, jeżeli nie dodała się samodzielnie to ten plik znajdziesz pod ścieżką: C:\Program Files (x86)\WiX Toolset v3.11\bin\WixBalExtension.dll.

Tworzenie instalatora .msi

Jeżeli interesuje ciebie szybka (niekoniecznie prawidłowa) ścieżka do utworzenia instalatora to uruchom Wax’a Tools -> WiX Setup Editor.

Korzystanie z tego rozszerzenia nie powinno sprawić nikomu problemu.

Obrazek podglądowy.

wax_tool_extension

W ten sposób zmodyfikowany został plik Product.wxs – XML z którego powstanie plik .msi.

Jeszcze potrzebujemy wprowadzić wartość w atrybutu Manufacturer w elemencie Wix/Product.

Tworzenie bootstrapera .exe

Bootstraper jest prosty w konfiguracji

Do elementu Wix/Bundle/Chain dodajemy taki wpis:

Gdzie SetupProject1 to nazwa projektu .msi

Potrzebujemy wprowadzić wartość w atrybutu Manufacturer w elemencie Wix/Bundle.

Teraz po wybraniu Build projekcie Bootstrapera powiniśmy otrzymać działający instalator.

To jeszcze nie koniec, taki instalator może nie zagwarantować poprawnego działania naszej aplikacji. Na przykład program nie ma praw do modyfikacji plików wewenątrz Program Files (jeżeli się o to nie zadba) O tym będzie w następnym oddcinku.