我的exe(vb项目)启动时需要一分钟来显示主窗体。经过调查,我发现了以下内容。它似乎令人难以置信,但它正在发生。甚至很多谷歌搜索都没有帮助。
仅在exe中发生,而不是从Visual Studio运行时发生。 仅在已发布模式下发生。 发生在所有机器上。已经在所有用户的生产中发生。 连接到不同的数据库没有任何区别(不是数据加载问题)。 SQL Server探查器在那一分钟内没有显示任何活动。
记录显示,罪魁祸首似乎是以下几行:
gfrmMain = New frmMain 'frmMain is a windows form
进一步的日志记录显示,在frmMain构造函数中调用InitializeComponent()之前发生了一分钟的延迟。
Public Sub New()
MyBase.New()
'Reached this line after a minute - what???
InitializeComponent()
...
End Sub
进程监视器显示该进程没有注册表,文件系统和网络活动。它只是闲着。
我尝试过的事情:
我无知还有什么可尝试的?
注意:解决方案是c#和vb项目的混合。实际上主要的vb项目和休息所有的c#项目。它发生在几个月前。直到那时一切都很好(在几秒钟内启动)。
答案 0 :(得分:1)
我遇到了完全相同的问题。我们发现它是.NET 4.5.1。我们的应用程序的目标是.net 4.0,但最近4.5.1覆盖了它。突然,12个中的一个表单需要60秒才能加载并使用300 MB的内存。尝试重新加载有效的.NET版本(对我们来说是v4.0),然后通过Windows Update停止自动更新到4.5.1(隐藏更新)并告诉我你的工作方式。我还发现关闭发布模式的优化工作 - 但我决定反对走这条路。