31 votes

Pièges et problèmes liés au déploiement de ClickOnce/smart-client dans .NET

J'ai plusieurs projets .NET Formulaires Windows que je m'apprête à convertir en une ClickOnce /scénario de déploiement smart-client. J'ai lu les tutoriels, mais y a-t-il des pièges ou des problèmes dont je dois être conscient ?

Plusieurs applications mineures sont utilisées de temps à autre, mais l'application principale est en C#, fonctionne 24 heures sur 24, 7 jours sur 7, est assez volumineuse, mais ne change que toutes les quelques semaines. Elle écrit également dans un fichier journal local et communique avec des périphériques matériels locaux.

0 votes

Classée comme "non constructive" - pourtant les réponses à cette question m'ont été extrêmement utiles... pour décider de ne pas utiliser le déploiement de ClickOnce ;)

0 votes

J'ai lu beaucoup de personnes se plaignant de clickonce, les choses ont changé depuis, ne laissez pas ces réponses vous intimider, il est facile à mettre en place et présente de bons avantages.

12voto

Darrel Miller Points 56797

En voici quelques-unes dont j'ai connaissance.

  1. Impossible de mettre une icône sur le bureau. Vous pouvez maintenant.

  2. Je ne peux pas installer pour tous les utilisateurs.

  3. Je dois faire des pieds et des mains pour déplacer le déploiement sur un autre serveur. Ce n'est pas un problème si vous développez en interne et que les utilisateurs peuvent voir le serveur sur lequel vous publiez ou si vous déployez sur le web public, mais ce n'est pas génial si vous devez déployer sur plusieurs sites clients indépendamment.

  4. Desde .NET 3.5 SP1, il n'est plus nécessaire de signer le manifeste de déploiement, ce qui facilite grandement le déplacement des déploiements vers de nouveaux serveurs.

  5. Je ne peux pas installer les assemblages dans le CAG . Vous pouvez contourner ce problème en créant des paquets d'installation réguliers qui sont des pré-requis de l'application ClickOnce.

0 votes

Il est impossible de modifier la clé de signature expirée (sans réinstallation), sauf si vous utilisez .NET 3.5 SP1.

0 votes

En fait, vous pouvez le déplacer vers un autre serveur en le publiant simplement avec une nouvelle URL de mise à jour (cf. robindotnet.wordpress.com/2010/01/17/ ). Et vous pouvez installer des assemblages dans le GAC en les plaçant dans un paquet d'installation et de déploiement et en les déployant en tant que prérequis.

0 votes

@RobinDotNet Il n'est pas vraiment facile de publier depuis notre environnement de construction directement sur le serveur interne de plusieurs clients. Quoi qu'il en soit, .net3.5 sp1 a résolu tous mes problèmes en supprimant l'exigence de signature.

9voto

Nicholas Piasecki Points 13681
  • Lorsque des mises à jour sont déployées, la boîte de dialogue intégrée donne l'impression que l'application entière est retéléchargée. En réalité, seules les DLL modifiées sont téléchargées, et la barre de progression affichée est trompeuse. Ne perdez pas de temps à essayer de comprendre pourquoi tous les assemblages sont redéployés pour découvrir qu'ils ne le sont pas. Non pas que j'aie fait ça ou quoi que ce soit.
  • Lorsque le certificat que vous avez utilisé pour signer le manifeste de déploiement initial expire et qu'un nouveau certificat vous est délivré, vous risquez d'avoir de gros ennuis (les clients devront tous désinstaller et réinstaller). Détails sont à la bouche du cheval .

7voto

codeConcussion Points 7250

La plupart des problèmes ont été résolus, mais plusieurs personnes ont mentionné l'impossibilité de créer un raccourci sur le bureau. En fait, vous puede créer un raccourci sur le bureau avec Visual Studio 2008 SP1 .

De plus, si vous n'utilisez pas la dernière version de Visual Studio, vous pouvez toujours écrire un code pour créer un raccourci vers le raccourci du menu de démarrage installé .

3 votes

Bien que, malheureusement, il ne sera pas désinstallé proprement.

6voto

Chris Marasti-Georg Points 17023

Nous avions une application que nous allions déployer comme une application ClickOnce. Nous avions besoin que l'utilisateur puisse modifier certains paramètres de l'installation (comme le chemin de déploiement - le service informatique veut servir les fichiers à partir de leur partage réseau, inconnu au moment de la construction). Lorsque vous modifiez l'un des fichiers de votre déploiement, vous devez recalculer tous les hachages et tout resigner. Ainsi, si cette solution est interne, vous n'aurez peut-être pas de problème à faire circuler un certificat de signature, mais si elle est destinée aux clients, vous devrez concevoir une solution sophistiquée pour contourner ce problème.

J'ai entendu des rumeurs, quelque part dans les entrailles des internets, selon lesquelles une future version de ClickOnce supprimera une partie de ce casse-tête.

1 votes

J'espère que les rumeurs que vous entendez sont correctes... c'est un problème énorme pour nous !

4voto

MagicKat Points 5192

L'un des écueils de ClickOnce est le fait que vous ne pouvez pas installer sur la CAG . C'est un problème si vous voulez installer plusieurs applications qui partagent des fichiers DLL. Chaque application aura besoin d'une copie locale des fichiers DLL. De plus, les installations à utilisateurs multiples ne sont pas possibles. Voir la liste comparant Window Installer à ClickOnce .

0 votes

Si les fichiers DLL ont un nom fort, ClickOnce les met en cache. Ainsi, si vous avez plusieurs applications qui utilisent la même dll (nous en avons plusieurs, dont log4net), ClickOnce n'en conservera qu'une seule copie dans le cache.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X