2010-08-24 16 views
1

Est-il possible de créer un déploiement clickonce où certains assemblages ou fichiers du manifeste peuvent être désignés comme n'ayant pas besoin d'être téléchargés à moins que l'utilisateur n'effectue une action dans l'application qui le requiert? À l'heure actuelle, nous avons une application ClickOnce relativement monolithique et cherchons des moyens de la refactoriser en assemblages distincts.Comment puis-je obtenir une application ClickOnce pour télécharger uniquement un assemblage lorsque cela est nécessaire?

J'essaie de trouver un moyen de réduire la taille de charge utile initiale lorsque je publie une mise à jour et que je télécharge uniquement des assemblys lorsqu'ils sont requis par l'utilisateur. Est-ce possible dans l'architecture ClickOnce? Y a-t-il une alternative?

Merci, -MrB

Répondre

2

Voici la procédure pas à pas: Walkthrough: Downloading Assemblies on Demand with the ClickOnce Deployment API Using the Designer

Mise à jour Je suggère la publication en utilisant le fichier de Visual Studio. Je n'utilise pas TFS, mais j'utilise MSBuild. Lorsque j'ai besoin de produire des fichiers manifestes différents pour des environnements différents, j'ai ma copie de script de construction et de modifier le fichier .csproj comme nécessaire, puis construire la cible Publier sur le .csproj modifié. Si vous voulez changer quels fichiers sont require/optional pendant votre construction, vous pouvez faire la même chose et modifier le fichier .csproj avant de le construire.

+0

C'est exactement ce que je cherchais. Savez-vous si je peux marquer par programme certains assemblages comme optionnels? Nous utilisons TFSBuild pour générer automatiquement nos manifestes d'application et de déploiement; et je ne veux vraiment pas m'impliquer manuellement avec MageUI pour chaque déploiement que nous faisons. –

+0

Hmmm ... Modifiez-vous simplement le XML .csproj directement, ou y at-il des appels API pour modifier des choses comme l'URL de déploiement, la version, et autres? –

+0

Je suis en train de modifier le fichier manifeste généré après avoir appelé "mage" dans mon action TFS Build, mais j'ai des problèmes avec la requête XPath pour récupérer les différents nœuds "dependentAssembly". J'ai essayé d'attacher un NamespaceManager à ma requête XPath puisqu'il y a un espace de noms par défaut dans le document manifeste. Suggestions? –