2009-06-29 4 views
5

J'ai une grosse application (190 Mo dans 600 fichiers) déployée en utilisant clickonce 3.5. Après l'installation de cette application, je l'exécute à partir du lien situé dans le menu Démarrer, mais il faut plus de 4-12 secondes pour afficher mon écran de démarrage. Lorsque cette application est exécutée à partir du fichier .exe, l'écran de démarrage est visible après 1 seconde. Mon application ne pas utiliser les mises à jour automatiques (mise à jour ClickOnce est effectuée manuellement à partir du code source)ClickOnce heure de début à partir du menu Démarrer lien

J'ai essayé de profiler cette application à l'aide dotTrace pour savoir ce qui se passe si longtemps lors du démarrage et découvrir que

IActContext System.Deployment.Internal.Isolation.IsolationInterop.CreateActContext(IDefinitionAppId) 

prend beaucoup de temps

est ici sous-arbre entier:

36,71% SetDomainManager - 12972 ms - 0 calls - System.AppDomain.SetDomainManager(Evidence, Evidence, IntPtr, Boolean) 
    18,52% CreateActivationContext - 6542 ms - 0 calls - System.Deployment.Internal.Isolation.Manifest.CmsUtils.CreateActivationContext(String, String [], Boolean, ApplicationIdentity &, ActivationContext &) 
    18,52% ActivationContext..ctor - 6542 ms - 0 calls - System.ActivationContext..ctor(ApplicationIdentity) 
     18,52% CreateFromName - 6542 ms - 0 calls - System.ActivationContext.CreateFromName(ApplicationIdentity) 
     18,52% CreateActContext - 6542 ms - 0 calls - System.Deployment.Internal.Isolation.IsolationInterop.CreateActContext(IDefinitionAppId) 
    18,19% SetupApplicationHelper - 6429 ms - 0 calls - System.AppDomain.SetupApplicationHelper(Evidence, Evidence, ApplicationIdentity, ActivationContext, String []) 
    18,19% DetermineApplicationTrust - 6429 ms - 0 calls - System.Security.HostSecurityManager.DetermineApplicationTrust(Evidence, Evidence, TrustManagerContext) 
     18,10% get_ActivationContext - 6396 ms - 0 calls - System.Runtime.Hosting.ActivationArguments.get_ActivationContext() 
     18,10% CreateFromName - 6396 ms - 0 calls - System.ActivationContext.CreateFromName(ApplicationIdentity) 
      18,10% CreateActContext - 6396 ms - 0 calls - System.Deployment.Internal.Isolation.IsolationInterop.CreateActContext(IDefinitionAppId) 
     0,09% DetermineApplicationTrustInternal - 33 ms - 0 calls - System.Security.Policy.ApplicationSecurityManager.DetermineApplicationTrustInternal(ActivationContext, TrustManagerContext) 

Comment puis-je réduire ce temps de démarrage de mon application? Ceci est très critique car parfois l'utilisateur doit attendre plus de 12 secondes pour voir l'écran de démarrage

+0

Quelqu'un peut-il m'aider avec ça? – Irek

Répondre

1

Il semble qu'une bonne partie du temps est consacré à déterminer le niveau de confiance de votre application. Avez-vous essayé de déployer cette application en toute confiance pour voir si cela réduira le temps?

+0

Ok, j'ai entièrement confiance dans mon manifeste d'application. – Irek

+0

L'heure de démarrage est la même. Rien n'a changé. – Irek

Questions connexes