2009-11-13 13 views
6

Desidero consentire ai miei utenti di installare più copie della mia applicazione su un singolo PC; uno per scopi di test e uno per un sistema di produzione. L'installazione è un file MSI creato direttamente in Visual   Studio   2005. Esiste un modo per abilitarlo?Come consentire agli utenti di installare più copie di un file MSI?

Sono pronto per utilizzare altri strumenti per generare l'installazione o anche utilizzando Ocra.exe direttamente se necessario, ma per ora almeno InstallShield è fuori questione.

+2

Non eseguire test sui server di produzione; oppure: non eseguire live dai server di prova. –

+2

In un mondo perfetto è ciò che i clienti farebbero. Ma in un mondo dove i clienti sono piccoli e vogliono minimizzare il numero di server che devono gestire, l'esecuzione sia sullo stesso server non è irragionevole. –

+0

Qui nessuno parla nemmeno di severs. Sta parlando di utenti che installano due versioni di un prodotto sui propri PC. – BrainSlugs83

risposta

5

Come indicato da slugster, è necessario aggiornare il codice prodotto nella tabella Proprietà. Dovrai inoltre modificare il codice del pacchetto nello Summary Stream Information. Il modo più semplice per modificare il tuo MSI è utilizzando l'automazione con VBScript.

L'SDK di Windows Installer contiene utili scripts (WiRunSQL.vbs, WiSumInf.vbs) che permetterà di modificare il vostro MSI come segue:

Per cambiare il codice del prodotto

cscript WiRunSQL.vbs your.msi "UPDATE Property SET Value='{AAAAAAAA-BBB1-CCCC-DDDD-EEEEEEEEEEEE}' WHERE Property='ProductCode'" 

Per cambiare il codice del pacchetto:

cscript WiSumInf.vbs your.msi 9={AAAAAAAA-BBB2-CCCC-DDDD-EEEEEEEEEEEE} 

Basta notare i nuovi codici dovrebbero essere un valido e univoco GUID.

+0

L'aggiornamento del codice prodotto non sembra sufficiente. Quando eseguo questa operazione ed eseguo il nuovo MSI, viene richiesto di ripristinare/rimuovere l'istanza precedente. Voglio che installi una nuova istanza. Qualche idea di cos'altro ho bisogno di cambiare per farlo funzionare? –

+0

Dovresti davvero aggiornare anche il codice del pacchetto. Vedi la mia risposta aggiornata sopra. – KMoraz

2

È necessario creare una trasformazione (.mst), che viene applicata al file MSI prima dell'esecuzione. Questa trasformazione può fare varie cose, inclusa la modifica del codice del prodotto. È questo cambiamento del codice del prodotto che consente di installare più di un'istanza dello stesso prodotto, poiché per l'installazione di Windows sembra essere un prodotto diverso.

Questa funzionalità di trasformazione è nativa per il motore di installazione di Windows. In altre parole, puoi creare autonomamente questi file, prodotti come InstallShield rendono tutto più semplice. Altri prodotti di creazione MSI avranno probabilmente la stessa funzionalità in modo che tu possa guardarti intorno e probabilmente ci sarà uno strumento nell'SDK di Windows Installer per farlo (non ho ancora guardato, uso solo InstallShield).

È possibile utilizzare Windows Installer Guide, Database Transforms per iniziare.

Problemi correlati