Domanda

così, qui è la situazione qui.

Ho 2 siti web ASP.NET + alcune applicazioni WinForm che vengono installati con una messa a punto. Essi sono tutti rappresentati come moduli di unione nel progetto di installazione.

Al momento quando vogliamo aggiornare la versione globale dell'applicazione dobbiamo aggiornare tutte le versioni in siti web ASP.NET e roba. So che è possibile rilevare la versione nella informazioni assemblaggio di un'applicazione asp.net, che è abbastanza facile. La difficoltà è quello di rilevare la versione "globale" di installazione. (Diciamo qui il sito è la versione 1.5, ma l'impostazione globale in sé è la versione 3.4).

A un certo punto credo che se il file setup.exe / setup.msi ho potuto passarlo in rassegna con la riflessione, ma non è esattamente la soluzione migliore. Noi registriamo ogni setup per la versione sul server in una cartella separata (es. C: \ Setup \ prodotto 1.0 \ Setup.exe, c: \ Setup \ prodotto 1.5 \ Setup.exe, ecc ..)

Qualche suggerimento?

È stato utile?

Soluzione

Definisci versione "globale" di installazione. Sta dicendo che ogni patch aggiorna alcuni, ma non tutti i gruppi, e quindi la versione di uno qualsiasi di montaggio, o anche qualsiasi delle Assemblee a tutti, non può riflettere l'ultima patch installata?

3 opzioni:

  • Mantenere le informazioni versione globale in ciascun file di configurazione e spingere fuori gli aggiornamenti ad ogni configurazione di ogni componente installato ogni volta (non raccomandato).
  • Fornire un file di configurazione condivisa o riferimenti da altri file di configurazione ad una configurazione "principale", che può essere referenziato da uno qualsiasi dei progetti eseguibili, e assicurarsi che config viene aggiornato ogni volta.
  • Mantenere una chiave di registro che contiene la versione globale per il pacchetto software.

Dei tre, io scelgo l'ultimo, dal momento che l'installazione e patching si sviluppa su diverse aree del sistema, ma ogni area deve essere in grado di leggere una chiave del Registro di software (se non aggiornarlo). Il processo non è difficile; è possibile fare riferimento all'oggetto System.Win32.Registry statico per ottenere le chiavi di base per LocalMachine, CurrentUser, ecc e da lì si può attraversare l'albero navigando attraverso oggetti RegistryKey (o creare uno da zero con il percorso della chiave). È possibile specificare il percorso della chiave con un'appSetting nei vari file Web e App.config; questo non dovrebbe cambiare così spesso come il valore della chiave stessa.

Altri suggerimenti

Se si installano più pacchetti da un MSI, allora è meglio lasciare che il MSI essere elencati in ARP e poi la versione di questa "impostazione globale" sarà prontamente disponibile per il futuro MSI. Senza sapere che la tecnologia che si sta utilizzando per creare il setup è difficile dare consigli più solida, ma in WiX (Windows Installer XML) È sufficiente per includere un elemento di aggiornamento che si prenderà cura di questo per voi automaticamente. La maggior parte delle tecnologie dovrebbero avere un modo per voi per controllare la corrente di installare la versione.

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