Ho un progetto di distribuzione che non mi consente di installare su una versione precedente. Il file msi dice di disinstallare il programma prima da Aggiungi/Rimuovi programmi. Questa non è una buona esperienza utente. Come posso fare in modo che l'installatore rimuova semplicemente il software e poi installi la nuova versione?Installazione di una nuova versione di un progetto di distribuzione su una vecchia versione
risposta
Questo è difficile, si hanno a che fare seguendo i punti,
- Set Rimuovere l'installazione precedente come True
- Set Rileva nuova versione come True
- versione tuo C del programma # deve aumentare con ogni schieramento
- Dovresti cambiare la versione del tuo programma di installazione in una versione più alta e ti chiederà di cambiare il codice del prodotto, seleziona SÌ.
- Non modificare il codice di aggiornamento, lascia che sia lo stesso.
Se non si esegue correttamente il terzo passaggio, il programma di installazione continuerà a installare e conservare il file precedente, la versione del file di ogni file deve essere nuova se è stato modificato il contenuto.
Penso che "Remote Previous Installation" indichi "RemovePreviousVersions" – CRice
Qualche idea su come ottenere ciò senza modificare ProductCode guid? (aggiornamento minore) http://stackoverflow.com/questions/3114637 – CRice
Con "La versione del tuo programma C# deve aumentare ad ogni distribuzione" intendi ogni assembly toccato, vero? – mbx
progetto proprietà Set di installazione RemovePreviousVersions Vero
Ma bisogna usare lo stesso UpgradeCode in entrambe le applicazioni di configurazione
+1 grazie per aver segnalato lo stesso codice di aggiornamento. –
Ho provato alcuni scenari, forse questo aiuterà qualcuno risparmiare un po 'di tempo
Se la versione dell'Assieme cambia E la versione del programma di installazione del progetto cambia (anche con ProductCode Guid cambia) -> Le installazioni di app si sovrappongono a quella esistente -> dll e versioni exe vengono aggiornate -> Se il percorso IF installato è diverso, i file di progetto inizialmente installati vengono eliminati dal punto in cui sono stati installati. (Ei file apportate dal momento rimangono)
Se le modifiche della versione montaggio e cambi di versione di installazione di progetto (senza CodiceProdotto Guid cambiare) -> all'utente viene chiesto di rimuovere manualmente l'applicazione -> se vanno avanti e rimuovere dal pannello di controllo prima , l'app può essere installata e le DLL e gli ex vengono aggiornati alla nuova versione
Se SOLO la versione di assieme cambia, o cambia solo la versione dell'installatore di progetto (senza modificare ProductCode Guid) -> L'utente è invitato a rimuovere manualmente l'applicazione -> se vanno avanti e rimuovono prima dal pannello di controllo, l'app può quindi essere installata e le DLL e gli ex si aggiornano alla nuova versione
Se SOLO la versione del programma di installazione del progetto cambia (con ProductCode Guid che cambia anche) -> MSI passa attraverso il processo di installazione, ma dll e exe non cambiano versione -sono come per versione di assemblaggio e vengono sostituiti con file dello stesso assembly build version -> Il percorso IF installato è diverso, i file di progetto inizialmente installati sono eliminati da dove sono stati installati. (eventuali file creati da allora)
Se la versione del programma di installazione cambia (con ProductCode Guid che cambia anche) e la versione di assemblaggio è inferiore alla versione installata -> L'installazione inizierà, l'utente finale informerà che l'installazione non funziona come versione precedente.
utile .. su votato. – Munavvar
È possibile farlo a volte dopo aver installato la nuova versione il vecchio prodotto rimarrà lo stesso.
È necessario modificare il numero di sequenza di RemoveExistingProducts, È necessario pianificare tra Installa l'azione di convalida e InstallInitialize. È possibile farlo da ORCA
Per Ex InstallValidate = 1400 InstallInitialize = 1500
Poi RemoveExistingProducts = 1450
Cosa ha a che fare con il linguaggio di programmazione C#? –