我们的 C# 客户端应用程序在首次运行时总是需要更长的时间来加载。我还没有测试它是否是任何较慢的 .NET 应用程序的第一次运行,或者每个.NET 应用程序的第一次运行是否较慢,但无论如何它仍然是一个问题。我们如何才能消除这种一次性的启动打击?
我最初的想法是某种服务可以“热身”图书馆。我们需要为每个应用程序执行此操作,还是只为任何 .NET 应用程序执行此操作?服务运行的用户会有所作为吗?也许不是 Windows 服务,而是在 Windows 登录上运行的应用程序可以做这些脏活?同样,它是一个 .NET 服务这一事实是否就足够了,还是我们必须运行我们的每个程序来消除惩罚?我们可以传入一个命令行参数来告诉程序立即退出,但这是否足够,或者我们是否需要.NET 来加载我们将在应用程序正常执行期间使用的每个程序集?
回复:一些答案,我们正在部署发布模式的 DLL,并且减速仅在第一次启动时。我们正在尽可能地延迟类的初始化。