Analizuje właśnie bug-a, w którym instalator programu nadpisuje plik konfiguracyjny *.ini w trakcie upgrade-u aplikacji.
Jakiś zdolniacha zdecydował, że ten ini ma być obok pliku wykonalnego (nie znam się na Windows, ale z tego co mi wiadomo, plik ten powinien się znaleźć w osobnym miejscu).
Instalator pisany jest przez studenta (dosłownie i w przenośni), więc jakość kodu jest straszna. Testów oczywiście nie ma, bo to instalator (dla mnie to tylko wymówka, a skoro instalator robi dużo, to powinien mieć testy).
Z tego o ustaliłem, po wprowadzeniu wszystkich danych konfiguracyjnych i naciśnięciu "Install", pliki są kopiowane a w pewnym momencie, plik "ini" jest kasowany, a potem pojawia się nowy z ustawieniami domyślnymi.
Teraz jako, że Windows-a używam ponownie od 6-ci mc (przerwa 5 lat), a Wix toolset to już dla mnie czarna magia (którą muszę przyswoić), mam kilka pytań, które powinny mi pomóc w zrozumieniu tego bug-a:
- Instalator ma opcję anulowania instalacji w trakcie kopiowania. Dodając do tego znikający i pojawiający się plik ini, przypuszczam, że kopiowanie jest wykonywane do tymczasowo katalogu, który jest potem zamieniany z katalogiem docelowym. Z tego powodu plik ini znika, a potem jedna z akcji post kopiowania odtwarza plik z wartościami domyślnymi (jeszcze jej nie namierzyłem). Czy ma to sens?
- Akcje uruchamiane są w osobnym procesie (pewnie jak dla bezpieczeństwa), ale z jakiegoś powody niektóre akcje uruchamiane są w jeszcze innym procesie, co utrudnia debugowanie. Czym to może być spowodowane? Czy jakiś wpis w xml-u powoduje powstanie dodatkowego procesu?
- Znacie jakieś wzorce jak taki instalator powinien wyglądać, tak by był utrzymywany (obecny stan kodu jest straszny, a nie chce wymyślać koła na nowo). I nie mówię tu o aplikacjach i instalatorach klasy "Hello world", bo google głównie to mi wypluł
- Jakieś wskazówki jak rozwiązać problem z tym plikiem? W tej chwili zastanawiam się czy nie przemycić zawartości pliku w ustawieniach instalatora albo skopiować do pliku tymczasowego.
Dostałem jakaś książkę z opisem Wix toolset (460 stron), ale zejdzie mi trochę czasu, zanim znajdę w niej coś, co mi pozwoli pozyskać potrzebną informację.