Gestisci le versioni di ClickOnce per le diverse parti

2

Sono alle prese con la gestione dei rilasci di un software. Prima alcune informazioni generali:

  • È un'applicazione ClickOnce
  • Seguo spesso la versione pratica
  • Ci sono circa 30 parti servite con questo software
  • Ho bisogno di un controllo completo quale aggiornamento verrà consegnato a quale parte
  • Non è consentito a ciascuna parte di ottenere l'ultimo aggiornamento / rilascio
  • Ogni parte ha più client a cui è consentito ottenere l'ultimo aggiornamento, pubblicato per la parte specifica

Quindi questo è ciò che i miei requisiti sono in una descrizione approssimativa. Quindi lascia che ti spieghi cosa stavo pensando a come risolvere questo problema.

  • Vorrei creare un sito web di "implementazione" (asp.net) che gestirà tutte le richieste
  • Ci sono due endpoint uno per scaricare il client e uno dove il client controlla gli aggiornamenti
  • Quindi ogni parte ha un endpoint separato come DeploymentSite / party1 e un altro per DeploymentSite / party2
  • I file dell'applicazione devono ancora essere memorizzati centralmente

Quindi ho pensato che fosse gestibile con mage.exe con i seguenti passaggi

  1. Crea un'applicazione e archivia il nuovo rilascio nel repository / cartella dei file dell'applicazione
  2. Ottieni parti che devono essere aggiornate (file di configurazione, database sempre)
  3. Esegui mage.exe per creare una nuova applicazione e un manifest di distribuzione per ciascuna parte nell'elenco di aggiornamento con la nuova posizione del file dell'applicazione (1.0.2)

In realtà sto davvero lottando con questo personale di mage.exe. Non riesco a creare i file appropriati con il codebase necessario.

Come gestire questi requisiti?

    
posta Dirk Beckmann 25.04.2014 - 19:35
fonte

3 risposte

1

Ciò che desideri è possibile, ma non nel modo in cui lo menzioni.

Un pacchetto ClickOnce pubblicato è controllato da due file manifest: il manifest dell'applicazione chiamato [nome prodotto] .application ospitato nella cartella principale della distribuzione pubblicata e il manifest della versione chiamato [ nome dell'applicazione] .exe.manifest , che ovviamente risiede nelle cartelle di base del codice per le versioni specifiche.

Per farla breve, puoi pubblicare tutte le versioni che vuoi - in effetti è un po 'facile - ma avrai bisogno di una copia del manifest dell'applicazione per ogni' festa 'che hai. È quindi possibile aggiornarli in modo indipendente aggiornando il manifest dell'applicazione, una volta eseguito l'aggiornamento automatico di qualsiasi computer client, fa parte della funzionalità di ClickOnce (l'applicazione ClickOnce installata controlla il manifest dell'applicazione per gli aggiornamenti ogni volta che viene eseguito (o nel periodo specificato come parte della pubblicazione)).

Tutto quello che devi fare è controllare da quale applicazione manifestare qualsiasi parte originariamente installata, puoi farlo semplicemente controllando le loro credenziali e poi reindirizzandole al manifest dell'applicazione appropriato (che quindi lancerà il prompt di installazione). Non è necessario avere a che fare con Mage per ottenere questo risultato - è possibile farlo utilizzando la funzionalità di pubblicazione integrata in Visual Studio - è possibile pubblicare in una posizione neutra, quindi copiare il manifest dell'applicazione neutro generato oltre all'applicazione specifica per le parti appropriate manifesta.

Si noti che i manifesti dell'applicazione specifici delle parti sono necessari perché ClickOnce è un framework di installazione, non conosce nulla sull'autenticazione e l'autorizzazione, quindi è necessario prendersi cura di quel bit. Tecnicamente è possibile ospitare i file manifest dell'applicazione nella stessa cartella se li si nomina singolarmente, ma ciò richiede una conoscenza di Mage e non è un'attività semplice. Inoltre, è possibile automatizzare parte di questo con Gestione delle versioni e una o due attività personalizzate.

    
risposta data 24.10.2014 - 11:42
fonte
0

Il sito web sembra l'approccio giusto per la distribuzione dell'applicazione e il controllo degli aggiornamenti. Potresti studiare un sito C # MVC per questo approccio.

Pensavo di poter aiutare di più con la creazione di tutti i file manifest. La mia azienda crea un software chiamato ClickOnceMore progettato per aiutare a integrare ClickOnce in un ciclo di build. Penso che sarebbe perfetto per il tuo scenario aiutare con più clienti.

ClickOnceMore ha un concetto di macro. Per implementare le diverse parti, è necessario creare un singolo pacchetto ClickOnceMore con tutti i file necessari per l'applicazione e quindi aggiungere un set di macro per ciascun client. Per i file di configurazione è possibile fare riferimento a uno diverso per ciascun client utilizzando un valore di macro, è inoltre possibile fare riferimento a un diverso percorso di output per ciascun client. Quando costruisci dalla riga di comando puoi specificare quale serie di macro usare.

Spero che questo aiuti. C'è una prova gratuita di ClickOnceMore disponibile dal nostro sito web.

    
risposta data 26.04.2014 - 13:44
fonte
-1

Ho una situazione simile e il mio piano è di usare Octopus deploy e slowcheetah per le trasformazioni app.config per creare un pacchetto che abbia quindi più destinazioni di implementazione per ogni cliente unico.

    
risposta data 24.10.2014 - 03:33
fonte

Leggi altre domande sui tag