Domanda

Ho un progetto di installazione di Visual Studio che è molto semplice tranne una modifica. Ho due diverse librerie che vorrei installare in base alla selezione dell'utente. Ho aggiunto una schermata di controllo e condizioni ai file. Possono installare componenti o entrambi i componenti. Funziona tutto bene.

Ora per il mio requisito. Diciamo che l'utente ha installato l'MSI e selezionato solo un componente. Ora, devono installare il secondo componente dallo stesso MSI. Se eseguono nuovamente l'MSI, ho la possibilità di riparare o rimuovere. La riparazione risolverà solo il componente installato originariamente. Come posso dare loro la possibilità di installare gli altri componenti mostrando di nuovo la schermata?

Se questa funzionalità non è disponibile in un progetto di installazione VS, c'è qualcos'altro dove si trova? WiX forse?

È stato utile?

Soluzione

Non credo che i progetti VS Setup supportino questo. Wix o MSI creati da altri strumenti come InstallShield possono supportarlo. Il modo abituale di gestirlo sarebbe quello di creare funzionalità separate e assegnare i diversi componenti a ciascuna funzionalità. Quindi se l'MSI viene creato utilizzando WiX o qualche altro strumento, da Aggiungi / Rimuovi ci sarà il pulsante Cambia / opzione attraverso il quale è possibile ottenere l'opzione per riparare, modificare o disinstallare. Modifica quindi ti consente di modificare le selezioni delle funzionalità senza eseguire una reinstallazione.

Altri suggerimenti

Devi utilizzare gli editor MSI gratuiti come ORCA o SuperORCA. Microsoft utilizza per fornire lo strumento ORCA nel proprio service pack. Non sono sicuro se stanno continuando così. Lo strumento SuperORCA è disponibile all'indirizzo http://www.pantaray.com/msi_super_orca.html . Ora, quando avevo un compito simile da raggiungere, seguivo il mio approccio. Ho usato SuperOrca per aprire il mio file MSI. 1] Nella schermata di dialogo di riparazione / rimozione MSI, aggiungi un altro pulsante di opzione per " Modifica " - In SuperOrca - > Sotto la tabella RadioButton - > Aggiungi voce per il pulsante di opzione Modifica

2] Rinomina il testo di BackButton in " Reinstalla " dal suo originale "Indietro" - > In SuperOrca - > sotto la tabella di controllo - > cambia la proprietà Text per rinominarla Torna a Reinstalla

3] Selezionando il pulsante di opzione Ripara / Rimuovi abilita il pulsante Fine e disabilita il pulsante Reinstalla. Alla selezione del pulsante di opzione modifica abilita il pulsante Reinstalla e disabilita il pulsante Fine - In SuperOrca - > Nella tabella ControlCondition - > aggiungi voci per abilitare / disabilitare " Reinstalla " e "Finitura" pulsanti per ciascuna combinazione per riparare / rimuovere lo schermo (Nel mio caso il nome del modulo della finestra di dialogo è " MaintananceForm ")

4] Ora dalla tabella ControlEvent degli strumenti di SuperOrca scopri il nome di controllo per BackButton, Nel mio caso è " PreviousButton " ;. Ora modifica il suo evento, argomento e amp; Voci delle condizioni dalla tabella. E i valori per queste proprietà devono essere gli stessi per " Next " proprietà del pulsante dalla schermata di benvenuto del file MSI che reindirizza l'utente per mostrare le opzioni di installazione da scegliere.

Nota: sta funzionando bene per me. Ma quando si riselezionano nuovamente le opzioni di installazione e si fa clic su Avanti, in qualche modo non viene forzato per l'installazione dell'opzione selezionata. Invece ripara l'MSI. Ho provato a eliminare le voci dalla cartella Windows \ Installer in modo che MSI non selezionasse la versione installata incassata ma senza fortuna. Se qualcuno sta rispondendo su come forzare MSI a reinstallare tramite la procedura guidata di configurazione di MSI, per favore fatemelo sapere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top