Question

J'ai plusieurs applications Windows Forms que je suis sur le point de convertir en un. Scénario de déploiement ClickOnce / client intelligent. J'ai lu les didacticiels qui ne sont pas-ce-bons, mais y a-t-il des pièges ou des "pièges"? que je devrais être au courant?

Plusieurs applications mineures sont utilisées de temps en temps, 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. Il écrit également dans un fichier journal et communique avec les périphériques matériels locaux.

Était-ce utile?

La solution

Voici quelques exemples dont je suis au courant.

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

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

  3. Je dois parcourir des étapes 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 effectuez un déploiement sur le Web, mais ce n'est pas très bien si vous devez déployer indépendamment sur plusieurs sites clients.

  4. Depuis .NET 3.5 SP1, vous n'avez pas besoin de signer le déploiement. manifeste plus ce qui rend beaucoup plus facile de déplacer les déploiements vers de nouveaux serveurs.

  5. Je ne peux pas installer d'assemblages dans le GAC . Vous pouvez contourner ce problème en créant des packages d'installation standard, préalables à l'application ClickOnce.

Autres conseils

  • Une fois les mises à jour déployées, la boîte de dialogue intégrée apparaîtra comme si toute l'application était en cours de téléchargement. En fait, seules les DLL modifiées sont en cours de téléchargement et la barre de progression affichée est trompeuse / erronée. Ne perdez pas de temps à essayer de comprendre pourquoi tous les assemblages sont redéployés uniquement pour découvrir qu'ils ne le sont pas. Pas que je l'ai fait ou quoi que ce soit.
  • Lorsque le certificat que vous avez utilisé pour signer le manifeste de déploiement d'origine a expiré et que vous en avez reçu un nouveau, vous vous retrouvez face à un monde de blessures (les clients devront tous désinstaller et réinstaller). se trouvent à la gueule du cheval .

La plupart des problèmes ont été résolus, mais plusieurs personnes ont indiqué ne pas être en mesure de créer un raccourci sur le bureau. En fait, vous < em> pouvez créer un raccourci sur le bureau avec Visual & Studio & 2008 & SP1 .

De même, 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 Démarrer installé .

Nous avions une application à déployer en tant qu'application ClickOnce. Nous avions besoin que l'utilisateur puisse modifier certains paramètres de l'installation (par exemple, le chemin de déploiement - le service informatique souhaite servir les fichiers à partir de son partage réseau, ce qui n'était pas connu au moment de la construction). Lorsque vous modifiez l'un des fichiers de votre déploiement, vous devez recalculer tous les hachages et tout signer à nouveau. Ainsi, si cette solution est interne, vous n’éprouverez peut-être pas de difficulté à transmettre un certificat de signature, mais si c’est pour les clients, vous devrez créer une solution sophistiquée pour contourner ce problème.

J'ai entendu des rumeurs quelque part dans les entrailles des réseaux Internet qu'une nouvelle version de ClickOnce supprimera une partie de ce mal de tête.

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

L'un des pièges de ClickOnce est le fait que vous ne pouvez pas l'installer sur le GAC . Cela pose un problème si vous souhaitez installer plusieurs applications partageant des fichiers DLL. Chaque application nécessitera une copie locale des fichiers DLL. En outre, les installations de plusieurs utilisateurs sont terminées. Voir la liste comparant Window Installer à ClickOnce .

Dans le cas où une personne fait référence à cela dans une recherche, nous avons trouvé de nombreux clients préoccupés par le manque de sécurité qui "distribue" 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 une authentification Windows NT. Je pense que Sécuriser les applications ClickOnce explique ce que Je veux dire.

Les icônes du bureau sont relativement simples à faire via le code et, comme indiqué, avec 3.5 SP1 , cuit dedans - de sorte que ce ne soit plus un problème.

Il existe toujours un bogue non résolu avec xmlSerializer - il ne se déploie pas correctement dans certains cas. Une solution de contournement simple consiste à ajouter manuellement ce fichier au déploiement. PITA, mais c’est assez facile ... Cela peut être choquant quand votre déploiement échoue soudainement ...

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.

En outre, cela fait un moment que je ne l'utilise pas, mais vous pouvez utiliser un moyen spécial pour déterminer et 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 essai / attraper et si le numéro de version / version de ClickOnce lève une exception, l'application ne s'exécute pas en tant qu'application déployée par ClickOnce (c'est-à-dire qu'elle s'exécute en tant qu'application compilée régulièrement ou à partir de Visual Studio).

Pour une application simple (c'est-à-dire non 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 frappez plutôt rapidement le mur de "oh, cela ne peut pas être fait par ClickOnce, choisissez MSI ou autre chose).

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. Pour plus d'informations à ce sujet, consultez le Guide du développeur .NET Framework: déploiement et sécurité en un clic .

Mon plus gros problème, c'est 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é (quand vous y réfléchissez, il est logique de protéger cette clé). .

Je ne savais pas que le SP1 vous permettait de créer l'icône du bureau.
Voici comment nous le faisons (maintenant appelé "à la dure"):

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
}

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top