2010-10-18 18 views
18

Bezskutecznie próbuję znaleźć artykuł lub wpis przedstawiający ograniczenia funkcjonalne zestawu narzędzi WiX (Windows Installer XML)/WiX. Po użyciu WiX na kilka tygodni, mogę myśleć o co najmniej dwóch ograniczeń w najnowszej wersji RTM (v3.0):Jakie są ograniczenia zestawów narzędzi WiX i WiX?

  • WiX Toolset nie może dokonać inicjującego (setup.exe) .
  • Zestaw narzędzi WiX nie może pobrać rejestracji COM informacji z pliku COM wykonywalnego.

Czy możesz wymyślić inne ograniczenia? Coś, na co natknąłeś się podczas pracy nad projektem wdrożenia? Myślę, że ta informacja może być przydatna dla osób, które uczą się WiX.

+1

Dziękuję zarówno Yan, jak i Chrisowi za wnikliwe odpowiedzi. Chciałbym móc wybrać obie odpowiedzi jako zaakceptowane. –

Odpowiedz

19

Najłatwiej jest mi odpowiedzieć na to pytanie w kategoriach tego, co brakuje WiX, że ma InstallShield (luka cech).

  • inicjującego/Chainer - WiX ma inicjującego nazwie Tajne który jest obecnie zawarte w WiX v3.6.
  • XML Czytaj - WiX ma CA za piśmie nie czyta (AppSearch) XML plików
  • Text Search/wymienić tylko - InstallShield ma wzorców do odczytu/zapisu non INI files/XML
  • MSSQL tylko - nie obsługa Oracle i MySQL
  • Interfejs automatyzacji - bez DOM dla programowe aktualizowanie/generowanie projektów . Rób to wszystko z surowym XML.
  • Brak obsługi Native IIS 7 - Natywna obsługa IIS7 jest dostępna z WiX v3.5
  • Zestaw najczęściej Tylko tekst. Brak GUI Projektanci do podnoszenia ciężkich przedmiotów (patrz IsWiX). XML jest zwięzły i ma już numer , ale przypomina porównywanie Notatnika z Blend.

Użyłem ciepła, aby wyodrębnić COM z powodzeniem, więc nie jest to już dla mnie problemem.

+0

Doskonałe punkty. Dzięki Ci. Btw, zakładam, że używasz ciepła do wyodrębniania informacji COM z bibliotek DLL, a nie EXE, prawda? –

+0

@Chris: +1 dla punktów 2 - 4. Te wpłynęły również na moją pracę, ale zapomniałem wspomnieć o tym w mojej odpowiedzi. –

+0

Robię to dla EXE/DLL i zarządzanych/niezarządzanych. Używam małego programu, który napisałem, który umieszcza watcher systemu plików w katalogu i wywołuje ciepło za każdym razem, gdy zmienia się zawartość. Wstawiam plik, a następnie wstawiam jego zależności, dopóki nie zadziała i wytnij/wklej elementy COM. Następnie na czystej maszynie instaluję i testuję. –

12

Dodam jeszcze kilka punktów, ale to trudno nazwać poważne ograniczenia, ponieważ mogą oni wszyscy się obejść:

  • Nie ma gotowe narzędzie do osadzania transformacji (MST) do pakietu MSI; to tutaj msidb.exe przychodzi na ratunek
  • Trzeba wykonać dodatkową pracę, aby utworzyć pojedynczy pakiet z wieloma lokalizacjami, takimi jak tworzenie pakietów N, generowanie transformacji języka N dla pakietu neutralnego, osadzanie tych transformacji w pakiecie , poinstruuj swojego program ładujący, aby wywołał poprawną transformację językową.
  • WiX 3.0 ma dość ograniczone rozszerzenie IIS - obsługuje IIS 7 tylko w trybie zgodności z IIS 6; ale na szczęście nie jest to już prawdą dla WiX 3.5
  • Ciepło nie może generować "1 komponentu - N plików" domyślnie. Tak, wiem, nie jest to zalecane, ale czasami tego potrzebujesz; na szczęście możesz zmienić moc grzewczą tak, jak lubisz, dzięki XSL
  • PermissionEx z UtilExtension nie ma przełącznika do ustawiania list ACL tylko w folderach. Jeśli chcesz ustawić listy ACL tylko dla zainstalowanych plików, jest to niewielka liczba. Ale musiałem naprawić WiX za pomocą szybkiej poprawki, aby móc powiedzieć "zastosuj te uprawnienia tylko do folderów" w istniejącym drzewie systemów plików.

Jeszcze raz, powtórzę, że nie uważam tych poważnych ograniczeń. Jestem bardzo zadowolony z tego, co Rob i zespół wykonali do tej pory i są na dobrej drodze! :)

+0

Dokładnie informacje, których szukam. Dzięki Yan. –

+1

Pociąg może być (w większości) na właściwym torze, ale jest opóźniony o około 5 lat. Przeżyję ograniczenia WiX przez połączenie go z InstallShield, ale z mojej perspektywy brak bootstrapera to zabójca, który uniemożliwia mi na chwilę przejście na 100% WiX. Mimo to, używanie WiX w celu zastąpienia części InstallShield okazało się dla mnie bardzo dobre. –

+0

Co do drugiego punktu: właśnie to robi SharpSetup (+ kilka innych rzeczy dodaje możliwość edycji GUI instalatora w projektancie VS). –