2013-04-20 11 views
19

Il mio scenario è questo: voglio l'installer su completamente rimuovere la versione precedente (tutti i file tranne quelli creati dall'applicazione durante la sua durata) e sostituirlo con la nuova versione .È sicuro utilizzare GUID generato automaticamente sui tag Component

Nel mio script Wix utilizzo GUID (asterisco) generato automaticamente per ID prodotto e ID pacchetto, mentre utilizzo il mio GUID per UpgradeCode che rimane sempre uguale. Cosa non sono sicuro di poter utilizzare tranquillamente GUID (asterisco) generato automaticamente per i tag Component, rispetto al mio scenario?

Finora stavo usando NSIS. Volevo provare Wix, ma ho avuto un piccolo dubbio dal momento che le persone sui forum dicono che ci vorranno circa 30 giorni per impararlo mentre si può iniziare con NSIS in 1-2 giorni. Tuttavia, per un'installazione standard di cui hanno bisogno gli utenti tipici, mi ci sono voluti 2 giorni per ottenere un pacchetto di installazione veramente valido usando Wix. Se hai un po 'di background in xml probabilmente non dovresti preoccuparti. Grazie a Rob e a tutti gli altri contributori per aver creato Wix!

+0

Ecco alcune informazioni generali sui componenti guids - vale a dire quando devono essere modificati e non: https://stackoverflow.com/questions/1405100/change-my-component-guid-in-wix/1422121# 1422121 –

risposta

24

Sì, gli auto-guid Component/@Guid sono sicuri. Sono fatti in modo molto specifico per garantire che il GUID sia generato in modo stabile tra le versioni di quel componente in modo tale che lo Component Rules non venga violato.

Inoltre, se non si condivide componenti con altri Prodotti e si usa sempre importanti aggiornamenti e si pianifica l'aggiornamento principale presto, quindi non devi preoccuparti di GUID componenti molto a tutti, perché la due definizioni GUID del componente non saranno mai sulla macchina contemporaneamente. Ad esempio, le impostazioni predefinite per l'elemento MajorUpgrade offrono esattamente questo:

<MajorUpgrade DowngradeErrorMessage='A newer version of [ProductName] is installed.' /> 

Quindi, la risposta è: "Sì". :)

+7

Grazie Rob! Apprezzo molto che l'autore originale di Wix trovi il tempo di rispondere alle domande degli utenti qui. –

+0

Nessun problema. Ci è voluto molto tempo per arrivare ad un algoritmo che è stabile per Component Guids. Vittoria enorme per tutti, una volta che ha funzionato. :) –

+1

Quindi, se si dispone di una versione precedente di un programma di installazione che utilizza GUID espliciti? È quindi sicuro cambiarlo per usare '*' invece? (o meglio, quali sono i casi in cui ciò potrebbe causare problemi?) – jalf

Problemi correlati