Attualmente sto imparando i capricci del WiX e dell'installer di Windows e ho trovato un ostacolo.Dipendenze in MS Installer/Wix
Il progetto che sto attualmente pacchettizzando è composto da sei blocchi discreti. Per ora chiamiamoli A, B, C, D, E, e F.
Chunk A è un insieme di librerie e utilità comuni che vengono utilizzate da ogni altro progetto. Non presenta alcuna funzionalità per l'utente finale.
Chunk B è un altro insieme di librerie e utilità comuni che richiedono funzionalità fornite da Chunk A. Questo sembra strano, ma l'architettura è oltre la mia capacità di influenzare o controllare.
Chunk C è un terzo set di librerie e utilità comuni che richiedono funzionalità fornite dai blocchi A e B. Questo sembra ancora più strano di prima, ma non ho ancora alcuna possibilità di modificarlo.
Pezzi D, E e F, tutti richiedono le funzionalità fornite da blocchi A, B, e C.
Se possibile, vorrei fare in modo che ci sia una sola installazione di blocchi A, B e C, condivisi tra le installazioni di D, E e F. Mi è stata data la certezza che i pezzi A, B e C manterranno API stabili in modo che possano essere aggiornati senza interrompere la funzionalità di D, E , o F.
Il mio pensiero immediato è quello di creare moduli di unione per i componenti in A, B e C, quindi fare riferimento a loro nelle funzionalità fornite dagli installatori separati per D, E, e F. Questo sarebbe gonfiare gli installatori, ma garantirebbe che th I componenti necessari sono installati. Sfortunatamente, temo che causerebbe problemi nella convalida di Windows Installer durante l'aggiornamento.
Un altro pensiero che ho avuto è stato quello di creare un singolo programma di installazione per A, B e C e richiederlo nei programmi di installazione per D, E e F tramite ComponentSearch.
Un'idea ha senso? Se nessuna idea ha senso, hai qualche raccomandazione per un modo corretto di farlo?
Se uso del calore per generare inizialmente Wix file per A, B e C, dovrei usare un modello di frammento o modulo per i file che intendo inserire in wixlibs? – dskiles
Frammento (o nessun modello). Il prodotto e il modulo aggiungono cose extra che probabilmente non vuoi. – saschabeaumont