2016-09-28 2 views
-1

je construit un Add-in pour Excel à l'aide VSTO et déploiement à l'échelle plus ...Mise à jour VSTO sans interférer avec les données se

maintenant j'ai une version mise à jour (où il y a des nouveaux contrôles de la barre d'outils, une nouvelle colonne, et quelques bugs corrigés dans les comportements). Mon problème est que mon client travaillait avec la version précédente, remplissait ses données à l'intérieur de la feuille.

Comment puis-je mettre à jour le complément VSTO et migrer les données?

Merci pour votre aide

Répondre

1

Eh bien cela dépend de la façon dont vous avez créé le complément. Un complément n'est PAS couplé avec un classeur (ce qui est différent de document level customization) sauf si vous le faites.

Fondamentalement, il vous suffit de changer votre code, déployer une nouvelle version et votre client va l'installer. Lorsque Excel est lancé, la nouvelle version sera utilisée, donc si vous avez un bouton sur le ruban, le bouton utilisera maintenant la nouvelle version.

Si vous, pour une raison quelconque, faites le complément étroitement couplé avec un classeur spécifique (format), vous aurez à faire face. Ainsi, par exemple, si la nouvelle version attend maintenant une nouvelle disposition des données, vous demanderez aux clients de la modifier manuellement ou d'écrire une fonction qui fera cela pour eux. Exemple: Nous avons un complément VSTO Word qui fait beaucoup de choses, le complément utilise un modèle qui a une version comme (1, 2, 3, 4 ...) quand nous modifiez le modèle (par exemple en ajoutant des styles, en ajoutant des formes, en supprimant des formes, etc.) nous maintenons également une méthode de mise à jour récursive qui est déclenchée lors de l'ouverture d'un document. La méthode vérifie la version du modèle avec la version codée en dur dans le code, la comparaison et si la version du modèle est plus ancienne déclenchera la fonctionnalité de mise à jour (pas à pas, donc de v1 à v2 puis v2 à v3 et ainsi de suite il atteint la dernière version)

espoir qui aide

+0

pouvez-vous préciser comment vous garder/Mettre à jour la version du document? feuille de paramètres cachés? Métadonnées de document? Enregistré ailleurs? comment pouvez-vous empêcher le client de le changer? –

+0

@TomerW c'est MS Word donc c'est un peu différent mais peut toujours s'appliquer à votre besoin. Nous conservons donc la version du modèle dans [propriétés du document personnalisé] (https://msdn.microsoft.com/fr-fr/library/dhxe2d75.aspx), disons # 1, dans le code que nous avons une constante * templateVer = 1 * , quand un document est ouvert, il vérifie la version, si la même chose, ne rien faire. si la version dans ** code ** est plus haute alors nous appelons notre fonction la mise à jour. si elle échoue pour une raison quelconque = c'est un problème d'utilisateur, ils ne devraient pas modifier le modèle bien que nous essayions toujours de résoudre les problèmes les plus courants. Bien sûr, ils peuvent changer les données, mais pas la mise en page – PetLahev

+0

merci, c'est très pertinent et utile. Avez-vous d'autres conseils sur la façon de gérer les modifications de modèle avec des données déjà insérées? (je sais que c'est très spécifique, mais les pointeurs aident toujours) –