在我的工作中,我们正在使用 .net framework 4 开发不同的应用程序。所有应用程序都使用我们开发的通用程序集,例如 data.dll 中的数据层。这些应用程序驻留在网络驱动器上,并直接从那里启动。
大多数大型应用程序第一次启动(冷启动)需要一段时间,比如 4-5 秒。随后的发射速度要快得多,几乎是瞬时的。我认为这与网络无关,因为最大的组件大约为 900KB,而且我们使用的是千兆网络。
我想创建一个在计算机启动时启动的服务,并在特定目录下加载所有 .net 程序集。我希望当用户启动一个程序时,所有必要的程序集都已经被加载并“JITed”,所以启动应该更快。
我知道如何创建服务,但我想知道这是否可行,因为我对 CLR 的理解非常有限......另外,是否会做类似 Assembly.LoadFrom(fileName) 的事情来预加载程序集?如果我有一段时间不启动任何程序,它们会保持加载状态还是会在一段时间后自行卸载?如果我更改已加载的程序集会怎样?
基本上,我想做一些类似OpenOffice Quick starter的东西,但是对于我们自己的应用程序框架。
感谢大家!!!
---编辑---
这很有趣......似乎以正确的方式进行,但不确定我是否理解一切......