Sistema di distribuzione automatica dei pacchetti Windows [chiuso]

2

Ho creato un'applicazione desktop solo per Windows che è composta da due file eseguibili principali e vari file di configurazione. Le due applicazioni sono sviluppate in lingue diverse (rispettivamente JS e C ++) e dovrebbero essere sempre sincronizzate con le versioni (ad esempio, appA-v1.0.exe sarebbe probabilmente incompatibile con appB-v2.0.exe).

Sto cercando un metodo di aggiornamento automatico che mi aiuti a garantire che questo vincolo sia sempre vero: ciò significherebbe distribuire un singolo pacchetto contenente entrambe le applicazioni invece di utilizzare auto-updaters specifici per lingua (I usato Sparkle per C ++ e Squirrel per l'elettrone in passato).

Ho pieno accesso alle macchine su cui questo software sarebbe installato (5/6, tutte gestite da noi), quindi l'idea è di avere un aggiornamento a tempo che controlli in caso di necessità di download e decomprima l'aggiornamento. L'aggiornamento dovrebbe non richiedere l'interazione dell'utente .

Potrei scrivere questo da solo, usando un server FTP per ospitare il pacchetto, controllando la data dell'ultima modifica, scaricando e scompattando se necessario, ma mi stavo chiedendo se ci sono soluzioni migliori ... qualche idea?

Grazie!

    
posta GavinoGrifoni 15.12.2016 - 18:22
fonte

3 risposte

0

Poiché questa domanda sta ancora generando attività, aggiungerò la mia soluzione in modo che non appaia più come aperta.

Ho semplicemente finito con l'installazione di un repository git contenente tutte le risorse compilate (per entrambe le applicazioni).

Ho aggiunto una chiave di distribuzione a quel repository per ogni macchina che dovevo aggiornare e ho aggiunto un cronjob che eseguiva semplicemente git pull ogni notte alle 1 AM. Quando è necessario rilasciare un aggiornamento, spingo semplicemente verso il ramo destro del repository e attendo che venga estratto.

Anche se questo potrebbe non sembrare una soluzione ottimale al problema, sono andato con questo per una serie di ragioni:

  • Semplicità nell'impostazione
    • questo punto è principalmente dovuto al numero limitato di macchine da aggiornare
  • Distribuzione unica dei pacchetti (le 2 applicazioni sono sempre sincronizzate con le versioni)
  • Nessun codice aggiuntivo da aggiungere in nessuna delle applicazioni
  • Affidarsi a un "servizio di hosting" già pagato (ad es. bitbucket)
  • Estrai la logica di aggiornamento (le macchine hanno enormi limiti quando si tratta di connessioni in entrata, a causa dei criteri del firewall aziendale)

Naturalmente questo non è l'ideale per una serie di motivi:

  • Non c'è modo di controllare se l'aggiornamento è stato applicato
  • Non è possibile forzare un aggiornamento al di fuori dei tempi di aggiornamento pianificati

Ancora una volta, non so se questo potrebbe essere ever utile a chiunque, era un caso particolarmente specifico con molti vincoli da parte dei proprietari delle macchine, quindi per favore non buttarmi addosso troppo odio per aver usato questa soluzione.

    
risposta data 24.01.2017 - 13:17
fonte
1

Un modo per gestirlo è utilizzando le estensioni di WSUS (server di aggiornamento dei servizi Windows?) per distribuire gli aggiornamenti all'applicazione.

Questa risposta di Microsoft è un po 'vecchia, ma penso che sia ancora così si applica:

Hi Ahmed Shariff, to Patch third party software like Adobe Reader, Flash player, Java and other you have the choice between : - Free Applications (open source) : - Local Update Publisher (http://localupdatepubl.sourceforge.net/fr/index.html) - Wsus Package Publisher (http://wsuspackagepublisher.codeplex.com/) - Commercial Applications : - Patch Manager from Solarwinds (http://www.solarwinds.com/solutions/microsoft-wsus-patch-management.aspx) - Corporate Software Inspector from Secunia (http://secunia.com/vulnerability_scanning/corporate/help/sfw.csiwsusconfiguration/)

Fonte: Post del forum di assistenza Microsoft

In alternativa, se la tua applicazione è portatile (non è necessario alcun programma di installazione) puoi usare un server git per ospitare il tuo binario e aggiungere un'attività pianificata che preleva dal tuo repository. Non è esattamente quello per cui è stato creato, ma ottieni versioni di versioni e funzionalità di rollback facili.

    
risposta data 16.12.2016 - 03:43
fonte
0

Se ti trovi in un dominio, investiga usando il meccanismo SCCM. Questo sistema consente di pianificare e inviare aggiornamenti SW, ecc. E può distribuire e installare in modo silenzioso e remoto. È un grande dominio studiare ma fa quello che chiedi.

    
risposta data 16.12.2016 - 03:42
fonte

Leggi altre domande sui tag