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

C#WPF应用程序启动速度非常慢,c#,wpf,performance,optimization,C#,Wpf,Performance,Optimization,我已经编写了一个简单的.NETWPF应用程序(只包含两个小窗口),但是它的启动太慢了,大约10-20秒 档案员说: Main->RunInternal(56%) Main->RunInternal->ctor->LoadBaml(32%) 应用程序加载时间的最大部分是Main->RunInternal函数的主体,这不是我的函数,我不知道它们是什么它们的执行时间是否可以优化? 加载Baml标记占用了32%的时间,但我的程序只有3个XAML文件,它们包含的代码不到100行为什么此操作需要这么长时

我已经编写了一个简单的
.NETWPF
应用程序(只包含两个小窗口),但是它的启动太慢了,大约10-20秒

档案员说:

  • Main->RunInternal
    (56%)
  • Main->RunInternal->ctor->LoadBaml
    (32%)
应用程序加载时间的最大部分是
Main->RunInternal
函数的主体,这不是我的函数,我不知道它们是什么它们的执行时间是否可以优化?

加载Baml标记占用了32%的时间,但我的程序只有3个XAML文件,它们包含的代码不到100行为什么此操作需要这么长时间?

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

那么,如何加快应用程序的启动时间呢

谢谢


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

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


我假设它是8,(Authenticode),这取决于您引用的程序集。我也有同样的问题。有RunInternal的Google什么也没给我 然后我尝试备份以前的代码并删除程序集和文件,直到只剩下一个窗口。

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

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


这是非常奇怪的,这台计算机,即使在重新导入了有缺陷的(慢)版本,它工作正常!然而,我的笔记本电脑(没有经过上述修复)仍会启动程序10秒以上。

我的问题是项目本身位于网络驱动器上。因此,该应用程序必须往返于距离我所在位置500英里的目的地驱动器,然后再返回,编译所有内容——所以肯定要花费所有时间。我看了其他问题,但这就是我的情况


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

没有真实的背景,性能优化实际上不是你可以客观地做的事情。除非您提供一些代码,否则恐怕没有多少人能够帮助您。是否存在绑定错误?它们会显著降低应用程序的速度。没有任何绑定错误和警告…-在我有限的经验中,只是WPF很慢,解决方案是添加一个启动屏幕,为用户提供一些指示。我按照前面提到的文章中itme 8的建议进行了测试,它将我的应用程序启动时间从16-20秒减少到3秒。