2016-04-22 1 views
1

En bref, un de mes clients de mon employeur a une plate-forme aaS qui repose sur un logiciel ClickOnce. Cette application particulière est développée par un développeur de logiciels tiers, et sous licence à la société cliente de mon employeur. Il arrive également qu'il y ait un grand nombre d'applications prérequis/dépendances qui doivent être installées pour pouvoir fonctionner, mais qui ne sont pas déployées dans le cadre de l'installation de ClickOnce. Surtout, parce qu'il est développé par un tiers et sous licence, il n'est pas possible d'apporter des modifications à l'application elle-même. Jusqu'à présent, l'installation de l'application sur les terminaux a été effectuée par l'entreprise cliente en fournissant un ordinateur préimaginé, ou lorsque son client souhaite utiliser son propre matériel, donnant à ses représentants du service clientèle un grand fichier zip contenant un fichier .zip. tas de scripts .bat qu'ils doivent exécuter manuellement sur n'importe quel ordinateur qui doit être utilisé comme point de terminaison pour leur service. Les scripts batch font essentiellement le travail d'un programme d'amorçage et installent les prérequis, effectuent les modifications de configuration système et les vérifications nécessaires, puis appellent le programme d'installation de l'application ClickOnce. Comme prévu, ils n'aiment pas cette solution, et ils aimeraient installer un vrai installateur, j'ai donc décidé de créer un programme d'amorçage avec WiX/Burn, mais je suis maintenant bloqué sur la façon d'inclure l'application ClickOnce dans mon projet bootstrapper. Je n'arrive pas à trouver la documentation sur cette ligne, en me posant la question:Puis-je regrouper une application ClickOnce dans un programme d'amorçage WiX? Comment?

Puis-je regrouper une application ClickOnce dans un Bootstrapper WiX? Comment? En cas de différence, l'application ClickOnce est publiée à partir de l'un des serveurs de l'entreprise cliente. J'ai donc un accès complet au manifeste ClickOnce et à tous les fichiers .deploy.

+0

Je suppose que vous pouvez simplement l'inclure comme un ExePackage dans la chaîne? Juste besoin de comprendre le bon DetectCondition pour déterminer si vous devez ou non exécuter le fichier EXE. Cependant, je n'ai jamais travaillé avec ClickOnce. –

+0

@BrianSutherland Je serais ravi si c'était la réponse, mais comme je n'ai jamais travaillé avec ClickOnce non plus, je n'en ai aucune idée. Le territoire totalement inexploré pour moi, et donc je suis un peu inquiet de savoir si cela peut casser toutes les choses quand l'application ClickOnce essaie de se mettre à jour elle-même par la suite, ou quelque chose de cette nature. On dirait que ça pourrait être mauvais pour moi si j'étais la raison pour laquelle dix mille terminaux ont soudainement cessé de fonctionner. :) – HopelessN00b

Répondre

1

Vous ne pouvez pas faire un porte-monnaie en soie d'une oreille de truie. Je pense que le mieux que vous pouvez faire est de créer un programme d'installation de dépendances pour une certaine version du programme d'installation de ClickOnce. Personne ne devrait s'attendre à ce qu'une future version de l'application ait les mêmes dépendances.

(En ce moment-là, bien que, peut-être qu'ils vont fixer leur programme d'installation ClickOnce en incluant les dépendances. Ou, abandonner les dépendances qu'ils éprouvent des difficultés à mettre en ClickOnce, par exemple, ceux nécessaires pour les versions obsolètes de Windows.)

Une fois les dépendances installées, vous pouvez demander au programme d'amorçage de lancer l'application, qui l'installera ou la mettra à jour. (. Logiquement, cela suit la chaîne)

<Variable Name="LaunchTarget" Value="http://example.com/path/product.application"/> 

Sauvegarde un peu, vous pouvez créer un MsiPackage avec tous les fichiers ClickOnce, et d'utiliser un « file: // » URI pour le LaunchTarget. Cela vous obligerait à reconstruire et redéployer chaque nouvelle version (en évitant la nature de ClickOnce), mais vous isolerait des mises à jour d'applications non testées.

+0

Je vais essayer ça ... merci. Je peux avoir du rouge à lèvres sur ce cochon pour le moment! – HopelessN00b