我们有一个winforms应用程序,它通过clickonce部署到用户并使用自动更新功能。
我们注意到,对于我们的用户,在发生clickonce更新后,应用程序需要几分钟才能显示。应用程序可执行文件在此期间运行,CPU使用率相当高,但不显示任何窗口。
这在开发人员的机器上是不可重现的。用户和开发者的机器之间存在两个主要区别:
应用程序的冷启动性能在更新后运行一次后几乎是即时的。
以下链接适用于msdn论坛上有相同问题的人,但没有发布解决方案: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/5ec061c4-ec6f-4101-98a6-dc8bb5acab60
由于开发人员无法在本地重现,我们还没有分析应用程序在此期间正在执行的操作。
有关为何可能发生这种情况的任何想法或有关如何解决问题的建议?
感谢。
编辑08/24/2009:创建了一个运行XP的32位虚拟机,并将其加入与用户相同的域中。该问题未在虚拟机中显示。这似乎消除了XP和域成员身份作为问题的根源。这似乎使VLAN,系统配置和补丁级别成为潜在的罪魁祸首。
答案 0 :(得分:5)
更新应用程序后,所有新程序集都需要及时编译。这通常只发生一次因此可以解释为什么初始启动缓慢以及为什么无法在开发人员机器上重现。
对于新部署的首次运行,我看到非常糟糕的性能(分钟与几秒).Net应用程序是用户正在运行防病毒软件,因为防病毒工具检查新的Jitted程序集不是恶意的。
如果您能够监视应用程序的初始启动 - 请检查是否已加载mscorjit.dll以及进程消耗大量CPU的原因是由于jitting。还要检查是否有任何防病毒工具消耗了大量CPU。