2010-05-04 8 views
4

Je suis le déploiement d'une application à un nombre inconnu de clients. Il va être 5-10 pour commencer, quelques dizaines par la suite. Je pense à créer un dossier web différent pour chaque client, afin que je puisse contrôler les mises à jour et les déployer progressivement.Y a-t-il des problèmes majeurs avec l'utilisation du déploiement .NET One-Click?

Y a-t-il des principaux problèmes connus avec le déploiement en un clic? Est-ce que je vais me suicider peu après golive?

Répondre

3

Nous utilisons ClickOnce ici pour la meilleure partie de 3, peut-être 4 ans, et n'a jamais connu de problème majeur. Le seul problème mineur que nous avons rencontré concernait la signature de code dans la version Visual Studio 2005 de ClickOnce: l'application ne fonctionnait pas si le certificat CS était modifié et nous devions désinstaller/réinstaller. Mais cela a été corrigé depuis Visual Studio 2008, et je n'ai pas remarqué d'autres problèmes.

ClickOnce est assez limitée par rapport aux installateurs MSI ou d'autres types d'installateurs - vous installez après disposez pas d'un système incroyablement robuste de pré-installation et les actions, les clés de registre, l'enregistrement de démarrage, etc., mais c'est à prévoir puisque les déploiements ClickOnce sont destinés à être exécutés dans un environnement à faible privilège.

+0

L'application doit-elle absolument être signée? Que se passe-t-il si je ne signe pas l'application? – Yoenhofen

+1

@Yoenhofen: Ce n'est pas l'application qui doit être signée, c'est le package ClickOnce lui-même. Cela doit être signé, voir ici: http://msdn.microsoft.com/en-us/library/ms172240(VS.80).aspx. Si vous n'avez pas de certificat "réel", il génère un certificat auto-signé pour vous. – Aaronaught

+1

Vous n'avez pas à signer le paquet, mais c'est un énorme trou de sécurité si vous ne le faites pas. Cela permet essentiellement à C/O de s'assurer que personne n'a altéré ou déplacé votre paquet de déploiement. Un autre commentaire - ils ont corrigé le problème de cert dans .NET 3.5 SP-1 et .NET 2.0 SP-1 si vous utilisez des mises à jour automatiques. Si vous utilisez programmatique, vous aurez toujours un problème. Ils ont tout corrigé dans .NET 4.0. Voici un article expliquant: http://msdn.microsoft.com/en-us/library/ff369721.aspx – RobinDotNet

7

D'une part, ClickOnce applications doivent être déployées installées pour chaque utilisateur sur un poste de travail donné. Il n'y a aucun moyen d'installer pour tous les utilisateurs via ClickOnce. Cela est dû au fait que ClickOnce a déployé des applications installées dans le dossier de profil de l'utilisateur, et non dans le dossier "Program Files".

+0

Très utile. Profitez de votre upvote. – Yoenhofen

1

Je pense que ce qui peut vous rendre fou dans votre modèle est garder la trace des versions possibles deux douzaines. ClickOnce ne va pas être votre problème là-bas.

+0

Oui, nous pourrions finir par limiter cela à quelques dossiers. Ou créez différents répertoires virtuels pointant vers le même emplacement de fichier. Je veux juste m'assurer que j'ai des options. – Yoenhofen

+1

Vous pouvez le faire pour que vous ayez seulement à suivre une version; Il suffit de mettre à jour la version minimale sur chaque déploiement successif et de forcer une mise à jour. ClickOnce rend réellement cela beaucoup plus facile que d'autres outils. Bien que s'il veut des versions/branches différentes pour chaque client, je suppose que c'est un problème distinct. – Aaronaught

2

Il n'y a pas de problème majeur avec ClickOnce dont vous avez besoin à se soucier, il fait son travail très bien. Cependant, vous rencontrerez un certain nombre de défis pour le faire fonctionner en douceur pour plusieurs clients.

Par « client » Je suppose que vous voulez dire « client »? Et chaque client a n utilisateurs qui chaque installation de votre application?

Vous et MAGE aurez besoin pour devenir amis. Pourquoi? Idéalement, vous voulez créer un build publiée (qui a passé tous les tests sur votre machine de construction et a passé QA), à partir de cette version que vous souhaitez créer un déploiement distinct pour chaque client. Pour ce faire, vous devez au minimum modifier les valeurs InstallUrl et UpdateUrl MsBuild, car il s'agit d'un répertoire Web différent pour chaque client.

Dès que vous apportez ces modifications ClickOnce n'installera plus l'application car un ou plusieurs des fichiers ont été modifiés. À ce stade, vous pouvez utiliser MAGE pour régénérer le manifeste d'application (par exemple myApp.exe.manifest) et alors le manifeste de déploiement (par exemple myApp.application). Un problème que j'ai trouvé en faisant cela était que vous deviez changer le répertoire "Application Files" en "ApplicationFiles". Nous sommes en train de faire exactement cela, prenez un build publié puis créez quelques douzaines de 'déploiements' de cette build pour des sites séparés, chacun ayant des informations de configuration différentes telles que les URL de service web.

Il faut un peu de temps pour le faire fonctionner correctement et ensuite plus de temps pour l'automatiser ... si je devais dire un «must», il faudrait s'assurer que vous automatisez le processus avec des fichiers batch ou un application de ligne de commande ... peu importe comment vous l'automatisez juste assurez-vous que c'est.

Bonne chance!

1

Nous avons des milliers de clients à travers le monde et nous utilisons le déploiement de ClickOnce avec beaucoup de succès depuis 2 ans et demi. Les seuls problèmes que nous voyons sont avec les pare-feu et les logiciels anti-virus, et même cela est assez rare.