Question Pièges / pièges du déploiement de ClickOnce / smart-client dans .NET [fermé]


J'ai plusieurs .NET Windows Forms applications que je me prépare à convertir en un ClickOnce/ Scénario de déploiement smart-client. J'ai lu les didacticiels, mais y a-t-il des pièges ou des «pièges» dont je devrais être conscient?

Il existe plusieurs applications mineures utilisées de temps en temps, mais l'application principale est en C #, fonctionne 24 heures sur 24, 7 jours sur 7, est assez grande, mais ne change que toutes les quelques semaines. Il écrit également dans un fichier journal localement et parle aux périphériques matériels locaux.


31
2017-09-29 17:16


origine


Réponses:


En voici quelques-uns dont je suis au courant.

  1. Impossible de mettre une icône sur le bureau.  Tu peux maintenant.

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

  3. Je dois sauter à travers les cerceaux pour déplacer le déploiement vers un autre serveur. Ce n'est pas un problème si vous développez en interne et si 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 indépendamment sur plusieurs sites clients.

  4. Depuis .NET 3.5 SP1 vous n'avez plus besoin 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 des assemblages dans le GAC. Vous pouvez contourner ce problème en créant des packages d’installation standard qui sont des prérequis de l’application ClickOnce.


12
2017-09-29 17:21



  • Lorsque des mises à jour sont déployées, la boîte de dialogue intégrée fait apparaître que l'application entière est en cours de nouveau téléchargement. En fait, seules les DLL modifiées sont téléchargées et la barre de progression affichée est trompeuse / erronée. Ne perdez pas de temps à essayer de comprendre pourquoi tous les ensembles sont redéployés uniquement pour découvrir qu'ils ne le sont pas réellement. Pas que j'ai fait ça ou quoi que ce soit.
  • Lorsque le certificat que vous avez utilisé pour signer le manifeste de déploiement d'origine expire et que vous en recevez un nouveau, vous risquez de souffrir (les clients doivent tous être désinstallés et réinstallés). Détails sont à la bouche du cheval.

9
2017-11-16 04:39



La plupart des problèmes ont été résolus, mais plusieurs personnes ont mentionné ne pas pouvoir créer de raccourci sur le bureau. En fait, vous pouvez 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 du code pour créer un raccourci vers le raccourci du menu de démarrage installé.


7
2017-09-30 14:11



Nous avions une application que nous allions déployer en tant qu'application ClickOnce. Nous devions pouvoir modifier certains paramètres de l'installation (tels que le chemin de déploiement - le service informatique souhaite diffuser les fichiers de leur partage réseau, non connus au moment de la génération). Lorsque vous modifiez l'un des fichiers de votre déploiement, vous devez recalculer tous les hachages et tout re-signer. Par conséquent, si cette solution est interne, vous ne rencontrerez peut-être pas de problèmes avec un certificat de signature, mais si cela concerne les 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 qu'une future version de ClickOnce supprimera une partie de ces maux de tête.


6
2017-09-29 17:23



Vous ne pouvez pas désinstaller en mode silencieux les applications déployées de ClickOnce. Je pense également qu'il est impossible d'ajouter des paramètres au raccourci de démarrage.


4
2017-11-28 08:25



L’un des pièges de ClickOnce est le fait que vous ne pouvez pas installer sur le GAC. Ceci est un problème si vous souhaitez installer plusieurs applications qui partagent des fichiers DLL. Chaque application nécessite une copie locale des fichiers DLL. De plus, plusieurs installations d’utilisateur sont hors service. Voir la liste comparant Window Installer à ClickOnce.


4
2017-09-29 17:22



Je ne savais pas que SP1 vous permettait de créer l'icône du bureau. Voici comment nous l'avons fait (maintenant connu sous le nom de "le chemin dur"):

            try
        {
            string company = string.Empty;
            string product = string.Empty;
            if (Attribute.IsDefined(asm, typeof(AssemblyCompanyAttribute)))
            {
                AssemblyCompanyAttribute asCompany = (AssemblyCompanyAttribute)Attribute.GetCustomAttribute(asm, typeof(AssemblyCompanyAttribute));
                company = asCompany.Company;
            }
            if (Attribute.IsDefined(asm, typeof(AssemblyProductAttribute)))
            {
                AssemblyProductAttribute asProduct = (AssemblyProductAttribute)Attribute.GetCustomAttribute(asm, typeof(AssemblyProductAttribute));
                product = asProduct.Product;
            }
            if (!string.IsNullOrEmpty(company) && !string.IsNullOrEmpty(product))
            {
                string desktopPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
                    product + ".appref-ms");
                string shortcutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs),
                    Path.Combine(company, product + ".appref-ms"));
                File.Copy(shortcutPath, desktopPath, true);
            }
        }
        catch 
        {
            // Shortcut could not be created
        }

3
2018-02-12 16:08



Si quelqu'un se réfère à cela dans une recherche, nous avons trouvé de nombreux clients préoccupés par le manque de sécurité de la «distribution» de leur application. L'application doit être disponible dans un emplacement public - sans aucune authentification - pour pouvoir vérifier les mises à jour. La seule exception est si vous avez l'authentification Windows NT. je pense Sécuriser les applications ClickOnce explique ce que je veux dire.

Les icônes du bureau sont assez triviales à faire via le code, et comme mentionné, avec 3.5 SP1, cuit - ce n'est plus un problème.

Il y a toujours un bogue non corrigé avec xmlSerializer - il n'est pas déployé correctement dans certains cas. Une solution simple consiste à ajouter manuellement ce fichier au déploiement. PITA, mais c'est assez simple ... Cela peut être choquant quand votre déploiement échoue soudainement ...


3
2017-11-16 04:23



Il y a beaucoup de choses que vous ne pouvez pas faire avec les applications ClickOnce, comme installer un raccourci sur le bureau de l'utilisateur ou avoir un sayo dans lequel l'application est installée. Pour certaines personnes, ce sont des dealbreakers.

Cela fait un certain temps que je ne l'ai pas utilisé, mais il existe un moyen spécial de déterminer et d'afficher le numéro de version / version de ClickOnce, qui est distinct du numéro de version / version de l'application. Vous devez faire un try / catch et si le numéro de version / build ClickOnce lève une exception, l'application ne s'exécute pas en tant qu'application déployée ClickOnce (c'est-à-dire qu'elle s'exécute en tant qu'application régulièrement compilée ou à partir de Visual Studio).

Pour une application simple (c’est-à-dire pas Microsoft Word, mais plutôt une application rapide et sale pour faire quelque chose) et nécessite beaucoup de déploiement régulier, ClickOnce est génial. Mais vous avez plutôt rapidement frappé le mur de "oh, cela ne peut pas être fait par ClickOnce, veuillez choisir MSI ou autre chose).


3
2017-09-29 17:23



Vous aurez moins d’accès au système que votre application .NET normale.

C'est parce que vous aurez un niveau de confiance inférieur. Plus à ce sujet dans Guide du développeur .NET Framework: déploiement et sécurité ClickOnce.

Mon plus gros problème avec cela était qu'il n'est pas possible de chiffrer des sections de votre fichier de configuration avec la clé d'ordinateur, car vous n'avez pas accès à cette clé (lorsque vous y réfléchissez, il est logique de protéger cette clé).


3
2017-09-29 17:23



Vous ne pouvez pas installer si le client est derrière un proxy nécessitant une authentification.


1
2017-08-06 20:11