2008-10-29 8 views
4

Si vous créez un complément "Hello World" VSTO2SE simple ciblant Microsoft Office Excel 2003, il faut 15 secondes pour charger un démarrage à froid. Pendant ce temps, Excel ne répond absolument pas. Le temps de démarrage à froid est toujours faible dans Excel 2003. J'ai vu une machine de test où le temps de démarrage est instantané dans Excel 2007, mais toutes mes autres machines de test prennent 15 secondes pour s'initialiser. (environnement de test - Windows XP Pro + Runtime VSTO2SE + XP SP3)Comment puis-je améliorer les performances de démarrage à froid d'un complément VSTO2SE MS Office?

Comment cette performance peut-elle être améliorée?

choses que je l'ai déjà essayé sans succès:

  1. Disasble certificats (CRL liste révocation) vérification - cela ne semble pas aider, plus je ne peux pas attendre les utilisateurs de le faire. Utilisez NGEN pour créer des assemblages natifs.
    a) Il semble que Office 2003 n'utilise jamais les assemblys natifs. b) Mon client de test Office 2007 démarre rapidement, même avec des assemblys IL. c) Même si je NGEN mon arbre de dépendance entière, il existe toujours des dépendances VSTO qui peuvent ne pas avoir d'images natives.

  2. Retarder le complément - c'est la solution de contournement "stock-réponse" que je reçois de Microsoft. La chose est, mon complément est lancé à partir d'un élément de menu - comment puis-je retarder le chargement du complément et toujours obtenir mes menus? Je pourrais utiliser un add-in VB6 pour dessiner les menus et transférer les appels via interop, mais alors pourquoi écrire un add-in VSTO en premier lieu?

Édition - Oui, c'est la seule ligne de l'événement "connection" dans le complément. (en fait, messagebox) .. Cela prend 15 secondes avant que la boîte de message apparaisse. - J Davis

Répondre

0

Avez-vous vérifié le hold-up actuel? Si vous mettez une instruction Debug.Write() comme première ligne dans votre add-in VSTO, cela prend-il 15 secondes pour apparaître dans la fenêtre de débogage?

Nous travaillons avec VSTO et chaque fois que nous avons des retards, c'est généralement autre chose que le temps d'exécution réel qui cause le ralentissement. Nous avons résolu ce problème en supprimant les threads d'arrière-plan pour faire les choses lentes sans bloquer le thread principal, ce qui retarde le démarrage d'Excel.

ps. Nous ne sommes pas non plus de grands fans de la technologie VSTO. Nous sommes 100% achetés dans la vision, mais la mise en œuvre laisse beaucoup à désirer.

+0

Oui, c'est la seule ligne de l'événement "connection" dans le complément. (en fait, messagebox) .. Cela prend 15 secondes avant que la boîte de message apparaisse. –

1

Vous allez avoir un coup de pouce sur le démarrage à froid car il doit charger tous les assemblages pour la première fois.

Si jusqu'à démarrage à chaud sont nettement plus rapide, alors les seules options réelles que vous avez sont

1) ont une charge de programme distinct au démarrage de Windows et charger toutes les assemblées pour vous r Addin en arrière-plan.

2) Essayez de réduire le nombre d'assemblages que vous utilisez. Certes, vous ne devriez pas utiliser beaucoup avec Hello World.

3) Précharger tout lorsque Excel démarre. Cela nuira à l'heure de démarrage d'Excel, mais rendra la sélection de votre menu plus rapide. Vous pouvez également précharger tout en arrière-plan, pour aider cela.

+0

# 1 - les assemblys doivent être chargés dans le domaine d'application Excel? # 2 - Oui # 3 - VSTO ne vous donne pas trop d'options ... Mon bœuf, est-ce que quand excel commence, il "semble se bloquer" car il a déjà montré l'interface utilisateur, mais se bloque charger les assemblages. Mauvais Microsoft ... Mauvais. Mal. :) –

Questions connexes