C#WPF应用程序启动非常慢

我写了一个简单的.net WPF应用程序(只包含2个小窗口),但它的发布速度太慢 – 大约10-20秒!

Profiler说:

  • Main->RunInternal (56%)
  • Main->RunInternal->ctor->LoadBaml (32%)

应用程序加载时间的最大部分 – 是Main->RunInternal函数的主体,这不是我的function,我不知道它们是什么。 他们的执行时间能以某种方式优化吗?

加载Baml标记需要32%的时间,但我的程序只有3个XAML文件,并且它们包含少于100行代码。 为什么这个动作需要这么长时间?

在询问之前我已经阅读并试过这些技巧,但他们没有帮助我:

  • WPF应用程序启动速度慢
  • http://msdn.microsoft.com/en-us/library/cc656914.aspx

那么,我怎样才能加快申请的开始时间?

谢谢。

PS。 我在两台类似的计算机上测试了这个程序,结果是一样的。

看看上面评论中提到的文章。

我认为它是8,(Authenticode),它取决于你引用的程序集

我也有同样的问题。 谷歌与RunInternal没有任何关系。

然后我尝试备份我以前的代码并删除程序集和文件,直到只剩下一个窗口。

然后它工作 – 启动时间从10秒缩短到1秒!

这次,分析器只显示System.Windows.Application.Run()而不是RunInternal

对于这台计算机来说,即使在重新导入错误(慢速)版本后,它也能正常工作,这一点非常奇怪! 而我的笔记本电脑没有通过上面的修复仍然启动程序10秒以上。

我的问题是项目本身位于网络驱动器上。 因此,该应用程序必须进行一次往返距我所在位置500英里的目标驱动器的整个往返,编译所有内容 – 所以它肯定会花费所有时间。 我查看了其他问题,但这是我的情况。

在尝试任何其他事情之前, 请确保您的项目位于本地