2010-10-05 8 views
1

Voici mon scénario actuel qui est spécifiquement ce que je voudrais discuter comme une étude de cas, mais je veux que cela soit suffisamment ouvert pour aborder d'autres pratiques de déploiement pour les projets .NET.Quelles sont les meilleures pratiques de déploiement et de configuration d'application avec .NET?

J'ai une application .NET WPF écrite pour effectuer des tests fonctionnels de fabrication. Actuellement, ce logiciel est déployé en copiant l'exécutable et ses dépendances sur le système cible. Les systèmes de communication esclaves sont installés de manière similaire, mais installutil doit être utilisé pour enregistrer un service Windows WCF. Tout cela est fait manuellement. En outre, les fichiers de configuration sont lus à partir de sources de données xml personnalisées qui sont locales au dossier de l'application. Aucune application.config n'est utilisée.

Je pense que nous pouvons tous convenir ce scénario est sous-pair, et ne certainement venir même près d'une condition de lancement idéal

Mes questions sont les suivantes:

  1. Que faut-il utiliser pour l'installation et le déploiement? Assistant Installation et déploiement? Déploiement Click-Once?
  2. Comment devrais-je procéder à l'automatisation de l'installation du service Windows? La meilleure façon de spécifier un nom d'utilisateur/mot de passe personnalisé pour le service mentionné?
  3. Que faire en cas de configuration si le stockage de dossier d'application modifiable est considéré comme dangereux, comment dois-je procéder? Stockage d'applications isolé?

Les liens d'article pour n'importe lequel de ce qui précède seraient idéaux.

Répondre

3

(1) Ce qui devrait être utilisé pour la configuration et le déploiement? Assistant Installation et déploiement? Déploiement Click-Once?

Si vous voulez vraiment réduire le risque de toute substance de déploiement ups en raison de l'erreur humaine, j'utiliserai WIX (http://wix.sourceforge.net/) pour créer des installateurs msi séparés pour le client demande le PAM et le service Windows. WIX peut être assez douloureux à certains moments, mais pratiquement tout en termes de déploiement peut être atteint. Il existe un projet spécial de studio visuel WIX disponible une fois que WIX a été installé sur votre PC.

Les informaticiens d'entreprise avec lesquels j'ai travaillé par le passé ont utilisé avec succès SMS ou Active Directory pour installer tous les msi que je leur ai créés dans le passé en utilisant WIX plutôt qu'une seule fois. Cela n'a vraiment rien à voir avec WIX.

(2) Comment dois-je procéder pour automatiser l'installation du service Windows? La meilleure façon de spécifier un nom d'utilisateur/mot de passe personnalisé pour le service mentionné?

Il y a beaucoup d'articles sur le web expliquant comment installer un service Windows en utilisant Wix comme celui-ci - Installing and starting a Windows Service using WiX. En utilisant WIX, vous pouvez définir des paramètres de nom d'utilisateur/mot de passe personnalisés à fournir lors de l'installation. Ces paramètres peuvent être définis via un fichier MST ou via la ligne de commande à l'aide de la commande msiexec.exe.

(3) Que faire en cas de configuration si le stockage de dossier d'application modifiable est considéré comme dangereux, comment dois-je procéder? Stockage d'applications isolé?

En utilisant Wix, les fichiers de configuration mutables peut devenir une chose du passé comme fichiers de paramètres de configuration XML pour différents environnements, y compris la production peut vivre dans des fichiers séparés MST contrôlés par les administrateurs système uniquement. Ajout d'une sécurité pour les mots de passe et autres qui se trouvent dans des référentiels sécurisés à clé, ceux-ci peuvent être ajoutés via la ligne de commande comme décrit dans la réponse précédente.

Les paramètres de paramètres sont transmis à l'installation à l'heure pour générer divers fichiers de configuration qui peuvent ensuite être définis en lecture seule ou même cryptés - Using WiX to fix up XML files when deploying to different environments.

+0

Si vous utilisez WiX pour l'installation du service et que l'installation échoue, essayez de désactiver le démarrage automatique du service. Le projet sur lequel je suis déplacé vers WiX utilise des files d'attente de messages, mais n'a pas pu démarrer automatiquement dans le cadre de l'installation - je ne sais toujours pas exactement pourquoi, les autorisations auraient dû être bonnes. Le démarrer manuellement après l'installation a parfaitement fonctionné. Juste un "pourboire". – jamiebarrow

1

Ouais, 1, un projet d'installation et de déploiement, facile peasy. La procédure de configuration du projet d'installation pour installer le service avec une action personnalisée est décrite en détail dans la procédure pas à pas "Creating a service application".

+0

quoi que ce soit sur le reste? – Firoso

+0

Il s'agit simplement de copier des fichiers. Appuyez sur F1. –

3

Je ne peux pas vraiment répondre à toutes vos questions, mais au moins aider avec une partie du problème que j'ai avec l'expérience.

J'ai trouvé sur un post de forum, comment intégrer fondamentalement InstallUtil dans votre programme, être fondamentalement ce qu'il fait pour vous pour installer le service, puisque tout est construit dans .net. Donc ce que l'affiche originale du forum a fait, et je me suis répliqué dans l'une de mes bibliothèques de base, est fondamentalement si je veux créer un service, je crée juste une application de console qui étend ServiceBase, remplace OnStart/OnStop et ai tout mon code de service. C'est génial car cela me permet de déboguer directement à partir de Visual Studio, et puis l'installation en tant que service signifie simplement exécuter la commande consoleapp.exe --install, et il va exécuter tout ce qui doit être fait pour installer le service.

Toutefois, pour la configuration et le déploiement proprement dit, je suis toujours limité à la création et à la copie de tous les fichiers mis à jour sur le serveur, en laissant le fichier de configuration de ce serveur intact. Je suis un grand partisan de l'utilisation de contrôle de version pour les fichiers de configuration par serveur, et je voudrais vraiment écrire un script pour copier les fichiers requis entre les systèmes si vous avez besoin de le faire sur beaucoup de serveurs, mais comme je l'ai dit avoir beaucoup d'expérience avec cela. J'espère que l'intégration de l'installateur de service est utile.

I believe this is the link to the original forum post for writing you're own installer

Since you mentioned WCF, though I would include this link about doing WCF from a Windows Service

0

Ma suggestion serait d'utiliser un projet Windows Installer pour le service car il est vraiment facile de configurer le nom d'utilisateur et le mot de passe par défaut. Il est également facile de définir l'état par défaut du service (autostart, démarrage manuel, désactivé, ...).

Pour l'application WPF, j'utilise ClickOnce sur des partages Windows. Il est facile à installer et gère automatiquement les mises à jour.

Ce serait génial d'utiliser ClickOnce pour la partie service Windows, mais je n'ai pas réussi à le faire.