Sto cercando di costruire una comprensione generale per ciò che è comune in questa situazione in modo da poter decidere se ha senso proseguire ulteriormente.
- Gli installatori sono i benvenuti in un tipico ambiente aziendale con quanto segue?
- Processo di controllo delle modifiche
- Ambienti Dev / QA / Production
- Team di distribuzione designati per varie aree (firewall, database, finestre, ecc.).
- Esiste un "tornasole" che potrebbe essere applicato a un'applicazione per vedere se è un buon candidato per la creazione di un programma di installazione? *
- Gli installatori sono abbastanza semplici che ogni applicazione dovrebbe averne uno?
- Gli installatori sono anche lo strumento giusto?
- È ragionevole aspettarsi che gli sviluppatori imparino qualcosa come WiX per supportare gli installatori?
- La manutenzione in generale è una preoccupazione, vale a dire, la creazione di un installatore è un'abilità di nicchia?
*
Ad esempio, ho un set di applicazioni winform che si trovano in una directory condivisa su un server di produzione. Gruppi specifici possono eseguire le applicazioni da questa directory, ma solo gli amministratori di sistema possono modificare gli eseguibili. L'attuale processo di distribuzione prevede che un amministratore copi / incolli gli eseguibili e le librerie nella directory condivisa.
Poiché le applicazioni non sono installate sul computer dei singoli utenti, ha senso creare un programma di installazione per distribuire nuove versioni di queste applicazioni nella directory condivisa?
Modificare--
Ho sentito che le risposte qui davano alcuni solidi consigli, quindi volevo condividere ciò che mi è venuto in mente per il mio attuale progetto in cui avevo bisogno di costruire un gran numero di applicazioni e distribuirle in singole cartelle.
Ho trovato un pacchetto NuGet chiamato _PublishedApplications che imita il comportamento di _PublishedWe website per progetti Web. L'idea è di installare il pacchetto NuGet nei progetti e di aggiungere una destinazione che copierà gli artefatti di compilazione in una directory _PublishedApplications nel percorso di output. Questo comportamento si attiva eseguendo MSBuild dalla riga di comando e specificando una outdir
proprietà:
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 \
...
- Project1 \
- _PublishedApplications \
Da lì, creare una zip che può essere estratta nei vari ambienti è abbastanza indolore.
.msi
installazione? Quelli, almeno, possono essere completamente automatizzati con il minimo dolore. (pur essendo comprensibile per l'utente occasionale che deve eseguire i propri aggiornamenti)