J'essaie de construire une compréhension générale de ce qui est commun dans cette situation afin que je puisse décider s'il est logique de poursuivre plus loin.
- Les installateurs sont-ils les bienvenus dans un environnement d'entreprise typique avec les éléments suivants?
- Processus de contrôle des changements
- Environnements Dev / QA / Production
- Équipes de déploiement désignées pour divers domaines (pare-feu, base de données, fenêtres, etc.).
- Existe-t-il un "test décisif" qui pourrait être appliqué à une application pour voir si elle est un bon candidat pour créer un programme d'installation? *
- Les installateurs sont-ils assez simples pour que chaque application en ait un?
- Les installateurs sont-ils le bon outil?
- Est-il raisonnable de s'attendre à ce que les développeurs apprennent quelque chose comme WiX pour prendre en charge les installateurs?
- La maintenabilité en général est une préoccupation, c'est-à-dire, la création d'un installateur est-elle une compétence de niche?
*
Par exemple, j'ai un ensemble d'applications winform qui se trouvent dans un répertoire partagé sur un serveur de production. Des groupes spécifiques peuvent exécuter les applications à partir de ce répertoire, mais seuls les administrateurs système peuvent modifier les exécutables. Le processus de déploiement actuel implique qu'un administrateur copie / colle les exécutables et les bibliothèques dans le répertoire partagé.
Étant donné que les applications ne sont pas installées sur la machine des utilisateurs individuels, est-il judicieux de créer un programme d'installation pour déployer de nouvelles versions de ces applications dans le répertoire partagé?
Éditer--
Je sentais que les réponses ici donnaient des conseils solides, donc je voulais partager ce que j'ai trouvé pour mon projet actuel où je devais créer un grand nombre d'applications et les déployer dans des dossiers individuels.
J'ai trouvé un package NuGet appelé _PublishedApplications qui imite le comportement de _PublishedWebsites pour les projets Web. L'idée est d'installer le package NuGet dans vos projets et d'ajouter une cible qui copiera les artefacts de génération dans un répertoire _PublishedApplications dans le chemin de sortie. Ce comportement est activé en exécutant MSBuild à partir de la ligne de commande et en spécifiant une outdir
propriété:
msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln
Cela vous donnera une structure de répertoires semblable à la suivante:
- C: \ chemin \ vers \ outdir
- _Applications publiées \
- Projet 1\
dlls, exes, etc.
- Projet2 \
...
- Projet 1\
- _Applications publiées \
De là, la création d'un zip qui peut être extrait dans les différents environnements est assez indolore.
.msi
installateur? Ceux-ci, au moins, peuvent être entièrement automatisés avec un minimum de douleur. (tout en étant compréhensible pour l'utilisateur occasionnel qui doit faire ses propres mises à jour)