如何改善VSTO2SE MS Office加载项的冷启动性能?

如果您创建一个针对Microsoft Office Excel 2003的简单“Hello World”VSTO2SE加载项,则在冷启动时加载需要15秒.在此期间,Excel完全没有响应.

Excel 2003中的冷启动时间总是很差.我在Excel 2007中看到了一台启动时间即时的测试机器,但我所有其他测试机器需要15秒才能初始化. (测试环境 – windows xp pro VSTO2SE运行时XP SP3)

如何改善这种表现?

我已经尝试过的事情没有成功:

> Disasble CRL(证书撤销列表)检查 – 这似乎没有帮助,加上我不能指望用户这样做.
>使用NGEN创建本机程序集.
a)似乎Office 2003从不使用本机程序集.
b)我的office 2007测试客户端快速启动,即使使用IL程序集也是如此.
c)即使我确定了我的整个依赖树,仍然存在可能没有本机图像的VSTO依赖项.
>延迟加载加载项 – 这是我从Microsoft获得的解决方法“库存响应”.问题是,我的加载项是从菜单项启动的 – 如何延迟加载加载项仍然可以获取菜单?我可以使用VB6加载项来绘制菜单并通过互操作转发调用,但是为什么我甚至会首先编写VSTO加载项?

编辑 – 是的,这是加载项中“连接”事件的唯一一行. (实际上是消息框)..消息框出现前需要整整15秒. – J戴维斯

最佳答案
您将在冷启动时受到打击,因为它必须首次加载所有程序集.

如果热启动明显加快,那么你唯一真正的选择就是

1)在Windows启动时单独加载程序并在后台加载所有程序集.

2)尝试减少正在使用的装配数量.当然,你不应该使用Hello World.

3)在Excel启动时预加载所有内容.这将损害Excel启动时间,但会使您的菜单选择更快.您也可以在后台预加载所有内容,以帮助实现这一目标.

转载注明原文:如何改善VSTO2SE MS Office加载项的冷启动性能? - 代码日志