WiX: Merge modules

image

Merge modules to plik z rozszerzniem .msm, który możemy dołączyć do naszego pliku .msi. Zaletą jest to, że na wyjściu dostajemy jeden plik Windows Installera, którego zawartość jest połączona(stąd nazwa merge module) z modułem.

Przykładowe użycie merge module w skrypcie wxs może wyglądać tak:

<Merge Id="CrystalReportsRedist" Language="1045" SourceFile="CrystalReportsRedist2005_x86.msm" DiskId="1" />

Czasem, są też problemy z nieistniejącymi tabelami w .msi, ale można to załawić przy pommocy EnsureTable:

<EnsureTable Id="Registry"/>

Sprawa wydaje się prosta. Jest jednak małe ?ale? dołączanie zewnętrznego komponentu do naszego msi mocno komplikuje upgrady( patrz tutaj Rule 43). Dodatkowo wiążemy się z producentem pakietu .msm i musimy za każdym razem sami aktualizować plik msi o nowszy msm.

Producenci komponentów rzadko dostarczają merge moduły. Na przykład .NET Framework wogóle nie jest dostępny jako MSM. Nawet ludzie z Microsoft radzą raczej ostrożne stosowanie Merge modules.

W większości przypadków można zupełnie spokojnie użyć jakiegoś bootstrappera i instalować normalnie pliki .msi na przykład tak jak to opisałem w jednym z poprzednich wpisów.

Tagged ,

One thought on “WiX: Merge modules

  1. Bartek Szafko ? WiX: Merge modules…

    Dziękujemy za publikację – Trackback z dotnetomaniak.pl…

Leave a Reply

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