Domanda

Sto cercando di trovare una soluzione per il seguente problema:

Ho numerosi programmi (consente di chiamare loro schiavi) che tutti si basano su un unico programma (master). Ho bisogno di distribuire un installatore per ogni slave. Questo programma di installazione deve installare il maestro.

Voglio essere in grado di versione entrambi i pezzi, in modo da apparire più di MSI essere la soluzione giusta, catena con un programma di avvio automatico.

Il mio problema è che se un programma di installazione di schiavi installa la stessa versione del maestro che è già installato, il msi verrà eseguito nella riparazione / modalità rimuovere.

Questo è inaccettabile dal punto di vista dell'utente e sarà solo causare confusione.

C'è un modo per verificare la presenza di una versione dei fiels attualmente installati prima di tentare di eseguire il msi?

Attualmente sto usando setupbld.exe di WIX come un programma di avvio automatico.

Eventuali altre soluzioni molto apprezzate (Ho anche provato moduli di unione senza successo, poiché la versione è inutile)

È stato utile?

Soluzione

Invece di usare setupbld.exe (che io non so davvero come non riesco a trovare alcuna documentazione) è possibile utilizzare di msbuild generatebootstrapper compito . La documentazione Wix copre già come utilizzare questo compito di generare un programma di avvio automatico che installa il framework .NET. Vedere Come: Installare il .NET Framework Utilizzando un programma di avvio automatico . Questo rende l'uso dei pacchetti predefiniti programma di avvio automatico.

Tuttavia, in questo caso si dovrà anche autore i propri pacchetti programma di avvio automatico . Un modo per farlo è quello di studiare i pacchetti programma di avvio automatico esistenti in C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ (o quelli in SDK di Windows ) e leggere il la documentazione del formato XML di avvio automatico Manifest . Il generatore bootstrapper strumento potrebbe anche essere utile.

Per determinare se il pacchetto ha bisogno di essere installato, è possibile utilizzare uno dei InstallChecks per impostare una proprietà, e quindi controllare il valore della proprietà in un InstallCondition sotto la Comandi elemento.

Se state pensando che questo è tutto più difficile di quanto dovrebbe essere - Sono d'accordo, ma è quello che ho usato finora. Ci sono alcune alternative che non ho ancora provato:

  • dotNetInstaller che è in realtà un obiettivo generale generatore di programma di avvio automatico.
  • Wix 3.5 burn bootstrapper che non è ancora stato rilasciato. Non sono sicuro se si trova in uno stato utilizzabile ancora.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top