2011-09-07 17 views
15

Ho un semplice progetto di installazione Web che legge da un progetto distribuibile.Visual Studio: Come disinstallare automaticamente la versione precedente installata?

Anche se ho impostato il programma di installazione per DetectNewerInstalledVersion-false Ho sempre trovato che fastidioso finestra di avviso che esiste una precedente installazione e ho bisogno di andare al Control Panel e trovare il software per rimuoverlo ...

C'è un modo per aggiungere uno script in una nuova finestra di dialogo per l'installazione che potrebbe dire A previous version was found, press NEXT to uninstall it.?

+0

Ho trovato utile questa domanda e la risposta di Cosmin Pirvu, ma ho riscontrato un problema con InstallExecuteSequence che viene affrontato qui: [Visual Studio 2010 - RemovePreviousVersions] (http://stackoverflow.com/questions/4210294/visual-studio -2010-removepreviousversions) –

risposta

7

Nel mio caso ho scoperto che il progetto di installazione non faceva parte del Configuration Manager. Pertanto, non è stato necessario ripetere le ricostruzioni della soluzione e il file di installazione con la nuova versione e ProductCode non è stato generato.

La soluzione è semplicemente fare clic con il tasto destro del mouse sul progetto di installazione e fare clic su Ricostruisci.

Spero che questo aiuto per futuri lettori :)

23

Le versioni precedenti vengono disinstallate automaticamente se si aumenta la versione del prodotto e si modifica il codice del pacchetto. Questo deve essere fatto ogni volta che si modifica il progetto di installazione e si crea un nuovo pacchetto.

Se si mantiene la stessa versione e Codice prodotto, le versioni precedenti non possono essere disinstallate automaticamente. Vengono rilevati da Windows Installer prima che il nuovo pacchetto venga effettivamente avviato. Quindi è necessario disinstallarli manualmente.

+0

Posso assicurare che la versione sta usando la sintassi della versione ed è stata aggiornata, ad esempio, da '1.0.0050' a' 1.0.0051'. Anche 'UpgradeCode' e 'ProductCode' vengono sempre aggiornati automaticamente. – balexandre

+3

UpgradeCode dovrebbe rimanere lo stesso, solo ProductCode dovrebbe cambiare. Inoltre, dal momento che stai ricevendo il messaggio che hai menzionato, non hai aumentato il pacchetto ProductVersion e modificato il ProductCode. Dove hai apportato le modifiche? –

+0

Risolvo che "ProductCode" è l'unico che cambia. Io uso la finestra Proprietà nel progetto di installazione. – balexandre

2

La risposta non è quella di utilizzare il progetto di installazione di Visual Studio che è già integrato. Ho lo stesso identico problema: non rimuoverà le versioni precedenti anche se ho aggiornato la versione, l'ho impostata per rimuovere la versione precedente, controllare la versione precedente e ricostruire, posso installare ma i file non sono aggiornati. Ci sono alcuni buoni strumenti per questo là fuori, controlla bitrock, inno setup o wix.

Anche Visual Studio 2010 era l'ultima versione con supporto del progetto di installazione. Non è incluso nel 2012.

+2

È necessario modificare anche la versione dell'Assembly nei progetti – rageit

0

Creare un file .bat
Scrivi questo codice:

wmic product where name="SetupProgramName" call uninstall /nointeractive 
cd Debug 
setup.exe 

Mettere questo file nella directory di installazione.

Problemi correlati