简体   繁体   English

从“开始菜单”链接单击“开始时间”

[英]ClickOnce start time from Start Menu link

I have big application (190 MB in 600 files) deployed using clickonce 3.5. 我使用clickonce 3.5部署了大应用程序(在600个文件中190 MB)。 After installation of this application i run it from link located in Start Menu but it takes over 4-12 sec to show my Splash Screen. 安装此应用程序后,我从位于“开始”菜单中的链接运行它,但显示我的启动画面需要4-12秒。 When this application is run from .exe file Splash screen is visible after 1 sec. 从.exe文件运行此应用程序时,1秒后可以看到启动画面。 My application don't use automatic updates (Clickonce update is done manually from source code) 我的应用程序不使用自动更新(Clickonce更新是从源代码手动完成的)

I've try to profile this application using dotTrace to find out what takes so long during startup and find out that 我尝试使用dotTrace来分析这个应用程序,以找出在启动过程中需要这么长时间的内容并找出答案

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

takes a lot of time 花了很多时间

Here is entire subtree: 这是完整的子树:

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)

How can i reduce this start time of my application? 如何缩短申请的开始时间? This is very critical because sometimes user has to wait over 12 secs to see Splash Screen 这非常关键,因为有时用户必须等待超过12秒才能看到启动画面

It looks like a good portion of the time is spent determining the trust level of your application. 看起来很大一部分时间花在确定应用程序的信任级别上。 Have you tried deploying this application with full trust to see if that will shave down the time? 您是否尝试过完全信任地部署此应用程序,看看是否会缩短时间?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM