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.
la source
.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)Réponses:
Un programme d'installation a toujours un sens, si le déploiement nécessite quelque chose de plus compliqué que de copier le ou les fichiers pertinents dans un dossier et d'exécuter EXE. S'il y a des étapes supplémentaires à effectuer pour configurer correctement le produit, il y a deux façons de procéder.
D'un autre côté, si vous n'avez aucune tâche de configuration à effectuer, donnez-leur simplement un fichier zip. C'est plus simple que d'exécuter un programme d'installation.
la source
Wyatt enlève son chapeau de programmeur et met son chapeau de directeur informatique
S'il s'agit d'une application métier interne, il vous suffit de viser un seul environnement - ladite entreprise. J'appellerais le responsable informatique et lui demander comment ils aimeraient gérer le déploiement. Les services informatiques s'occupent de cela depuis un certain temps, ils pourraient donc avoir une forte préférence pour les options basées sur xcopy ou MSI ou quelque chose de tout à fait comme votre option actuelle.
J'ajouterai que le département apprécierait à tout le moins le geste et pourrait probablement devenir un allié précieux car il est fort probable qu'il en sache plus sur l'application et les problèmes de la branche d'activité que vous ne le pensez.
la source
Les applications Windows Installer sont largement utilisées pour installer des applications métier internes dans des environnements utilisant Windows. Vous devez également vous demander si, pendant la durée de vie de l'application, elle devra probablement être mise à jour, corrigée, réparée ou supprimée proprement des systèmes de l'utilisateur. Dans de nombreux cas, la réponse est «oui» - auquel cas, avoir un installateur correctement écrit peut réduire le coût total de la maintenance de l'application au fil du temps. Il existe d'autres services et fonctionnalités conçus pour fonctionner avec Windows Installer, tels que le gestionnaire de redémarrage et WMI et les fonctions d'inventaire des produits et des correctifs. Si votre application peut en bénéficier, c'est une autre raison d'inclure un programme d'installation.
Les coûts initiaux pour développer un programme d'installation utile pour votre application peuvent être payants à long terme, et les coûts de développement peuvent être atténués en sélectionnant un outil de création Windows Installer approprié, tel que WiX ou InstallShield ou un autre.
la source
Comme pour toutes les décisions d'ingénierie, cela dépend.
Le facteur le plus important est probablement de comprendre qui est le consommateur de votre processus d'installation et quelles compétences possède l'équipe de développement.
Puisqu'il est interne, je suppose qu'il est déployé par un service informatique interne. Ils ne sont probablement pas étrangers à commander des obus.
Les assistants d'installation graphiques sont utiles pour les logiciels distribués directement aux clients externes car les hypothèses simples sur votre configuration ne sont plus valides, telles que les emplacements des serveurs de fichiers, les politiques de sécurité, etc. Par conséquent, vous devez guider chaque utilisateur dans le choix des paramètres eux-mêmes.
Dans votre environnement, ces éléments sont probablement dictés par le développement ou l'informatique et changent rarement. Par conséquent, je recommande d'utiliser des scripts shell pour copier les fichiers à l'endroit approprié. Les scripts doivent être intégrés à votre produit dans le cadre du package publié. La version doit également être contrôlée avec votre application.
Là où je travaille, notre application Web entière est installée via un assistant InstallShield, qui pose un tas de questions, dont la plupart sont des emplacements de système de fichiers, des informations de connexion db et d'autres paramètres qui se retrouvent simplement dans des fichiers de configuration. C'est difficile à automatiser. Étant donné que l'installation de l'application Web à sa base vient de créer quelques bases de données et copie des fichiers, j'écris un nouveau programme d'installation en utilisant Ant ou Powershell qui exécute simplement des fichiers .sql et copie des fichiers.
Ensuite, tout le monde peut comprendre comment cela fonctionne et le maintenir plus efficacement.
la source