I programmi di installazione di Windows per applicazioni aziendali interne hanno senso?

15

Sto cercando di costruire una comprensione generale di ciò che è comune in questa situazione, in modo che io possa decidere se è opportuno proseguire ulteriormente.

  1. Gli installatori sono benvenuti in un tipico ambiente aziendale con quanto segue?
    • Cambia processo di controllo
    • Dev / QA / Ambienti di produzione
    • Distribuire team designati per varie aree (firewall, database, finestre, ecc.)
  2. Esiste un "test del nove" che potrebbe essere applicato a un'applicazione per vedere se è un buon candidato per la creazione di un programma di installazione? *
    • Gli installer sono abbastanza semplici da consentire ad ogni applicazione di avere uno?
    • Gli installatori hanno lo strumento giusto?
  3. È ragionevole aspettarsi che gli sviluppatori imparino qualcosa come WiX per supportare gli installatori?
    • La manutenzione in generale è un problema, ovvero la creazione di un programma di installazione è un'abilità di nicchia?

*

For example, I have a set of winform applications that are in a shared directory on a production server. Specific groups can run the applications from this directory but only system admins can modify the executables. The current deploy process involves having an admin copy/paste the executables and libraries to the shared directory.

Since the applications are not installed on the individual users' machine, does it make sense to create an installer for deploying new versions of these applications to the shared directory?

Modifica -

Ho sentito che le risposte qui davano alcuni consigli solidi, quindi volevo condividere ciò che mi è venuto in mente per il mio progetto attuale, in cui avevo bisogno di creare un gran numero di applicazioni e distribuirle in singole cartelle.

Ho trovato un pacchetto NuGet chiamato _PublishedApplications che simula il comportamento di _PublishedWebsites per i progetti web. L'idea è di installare il pacchetto NuGet nei tuoi progetti e aggiunge una destinazione che copierà le risorse di costruzione in una directory _PublishedApplications nel percorso di output. Questo comportamento si attiva eseguendo MSBuild dalla riga di comando e specificando una proprietà outdir :

msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln

Questo ti darà una struttura di directory simile alla seguente:

  • C: \ percorso \ a \ outdir
    • _PublishedApplications \
      • Project1 \
        • dlls, exes, etc.
      • Project2 \
        • ...

Da lì, creare uno zip che può essere estratto nei vari ambienti è abbastanza indolore.

    
posta user1529856 13.05.2013 - 17:00
fonte

4 risposte

20

Un programma di installazione sempre ha senso, se la distribuzione richiede qualcosa di più complicato della copia dei file pertinenti in una cartella e dell'esecuzione dell'EXE. Se ci sono passaggi aggiuntivi che è necessario adottare per impostare correttamente il prodotto, ci sono due modi per farlo.

  1. Puoi scrivere un elenco per qualcuno da seguire. Essendo umani esseri umani, qualcuno è destinato a rovinare tutto e poi chiamarti chiedendo aiuto perché il tuo programma non funziona correttamente.
  2. È possibile scrivere un elenco per un computer da seguire (uno script di installazione). Ciò rende molto meno probabile che l'errore dell'utente rovini la distribuzione.

D'altra parte se non si hanno attività di configurazione da eseguire, basta dare loro un file zip. È più semplice di un programma di installazione.

    
risposta data 13.05.2013 - 19:47
fonte
11

Wyatt si toglie il cappello del programmatore e indossa il suo Director of IT hat

Se si tratta di una linea interna di applicazione aziendale, è sufficiente mirare a un unico ambiente, ad esempio il business. Chiamerei il responsabile IT e gli chiederei come vorrebbero gestire la distribuzione. I reparti IT hanno a che fare con questo per un po 'di tempo, quindi potrebbero avere una strong preferenza per le opzioni basate su xcopy o MSI o qualcos'altro interamente come la tua opzione corrente.

Aggiungerò che il dipartimento apprezzerebbe il gesto e probabilmente potrebbe diventare un valido alleato in quanto è probabile che sappiano di più sulla linea esistente di app e problemi di business di quanto tu non creda.

    
risposta data 13.05.2013 - 19:30
fonte
8

Le applicazioni di Windows Installer sono ampiamente utilizzate per installare applicazioni aziendali interne in ambienti che utilizzano Windows. Dovresti anche chiedertelo se per tutta la vita dell'applicazione è probabile che debba essere aggiornato, riparato, riparato o rimosso in modo pulito dai sistemi dell'utente. In molti casi la risposta è "sì", nel qual caso un programma di installazione correttamente scritto può ridurre il costo totale di mantenimento dell'applicazione nel tempo. Esistono altri servizi e funzionalità progettati per funzionare con Windows Installer, come Restart Manager e WMI e le funzioni di inventario di prodotti e patch. Se l'applicazione può trarre vantaggio da questi, allora questo è un altro motivo per includere un programma di installazione.

I costi iniziali per sviluppare un utile programma di installazione per la tua applicazione possono ripagare a lungo termine e i costi di sviluppo possono essere mitigati selezionando uno strumento di authoring appropriato di Windows Installer, come WiX o InstallShield o altro.

    
risposta data 13.05.2013 - 21:03
fonte
7

Come per tutte le decisioni ingegneristiche, dipende.

Probabilmente il fattore più importante è capire chi è il consumatore del processo di installazione e quali competenze ha il team di sviluppo.

Poiché è interno, presumo che sia distribuito da un reparto IT interno. Probabilmente non sono estranei a comandare le shell.

Le procedure guidate per l'installazione grafica sono utili per il software che viene distribuito direttamente ai clienti esterni perché semplici presupposti sulla configurazione non sono più validi, come posizioni dei file server, politiche di sicurezza, ecc. Pertanto, è necessario guidare ciascun utente attraverso le impostazioni di selezione stessi.

Nel tuo ambiente, questa roba è probabilmente dettata dallo sviluppo o dall'IT e raramente cambia. Pertanto, ti consiglio di utilizzare gli script di shell per copiare i file nella posizione appropriata. Gli script dovrebbero vivere all'interno del prodotto come parte del pacchetto che viene rilasciato. Dovrebbe anche essere controllato in versione insieme alla tua app.

Dove lavoro, la nostra intera applicazione web viene installata tramite una procedura guidata InstallShield, che pone una serie di domande, la maggior parte delle quali sono posizioni del file system, informazioni sulla connessione db e altre impostazioni che finiscono nei file di configurazione. È difficile da automatizzare. Dal momento che l'installazione della web app ha creato solo un paio di database e copie di file, sto scrivendo un nuovo programma di installazione usando Ant o Powershell che esegue semplicemente file .sql e copia i file.

Quindi tutti possono capire come funziona e mantenerlo in modo più efficace.

    
risposta data 13.05.2013 - 17:11
fonte

Leggi altre domande sui tag