2009-06-29 5 views
5

Ho una grande applicazione (190 MB in 600 file) distribuita usando clickonce 3.5. Dopo l'installazione di questa applicazione lo eseguo dal collegamento situato nel menu Start ma richiede oltre 4-12 secondi per mostrare il mio Splash Screen. Quando questa applicazione viene eseguita dal file .exe, la schermata Splash è visibile dopo 1 secondo. La mia applicazione non utilizzare gli aggiornamenti automatici (aggiornamento ClickOnce è fatto manualmente dal codice sorgente)ClickOnce start time dal menu Start link

ho cerco di profilo questa applicazione utilizzando dotTrace per scoprire che cosa vuole tanto tempo durante l'avvio e scoprire che

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

prende un sacco di tempo

Ecco intero sotto-albero:

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) 

Come posso ridurre questo tempo di inizio della mia applicazione? Questo è molto importante perché a volte l'utente deve attendere oltre 12 secondi per vedere Splash Screen

+0

Qualcuno può aiutarmi con questo? – Irek

risposta

1

Sembra che una buona parte del tempo venga spesa per determinare il livello di affidabilità della propria applicazione. Hai provato a distribuire questa applicazione con totale fiducia per vedere se si raderà il tempo?

+0

Ok, ho piena fiducia nel mio manifest dell'applicazione. – Irek

+0

L'ora di avvio è la stessa. Niente è cambiato. – Irek