vsto - 如何提高 VSTO2SE MS Office 加载项的冷启动性能?

标签 vsto add-in office-2007 office-2003

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

Excel 2003的冷启动时间总是很差。我见过一台测试机在Excel 2007中启动时间是即时的,但我所有的其他测试机都需要15秒才能初始化。 (测试环境-windows xp pro + VSTO2SE runtime + XP SP3)

如何提高这种性能?

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

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

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

    最佳答案

    您将在冷启动时受到打击,因为它必须第一次加载所有程序集。

    如果热启动明显更快,那么您唯一真正的选择是

    1) 在 Windows 启动时有一个单独的程序加载,并在后台为您的插件加载所有程序集。

    2) 尽量减少您使用的程序集数量。当然,您不应该在 Hello World 中使用太多。

    3) Excel 启动时预加载所有内容。这会影响 Excel 的启动时间,但会使您的菜单选择更快。您还可以在后台预加载所有内容,以帮助实现这一点。

    关于vsto - 如何提高 VSTO2SE MS Office 加载项的冷启动性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/248427/

    相关文章:

    c# - 如何保存我的 VSTO 插件的首选项?

    .net - 无法在证书存储中找到 list 签名证书

    c# - Office 加载项项目、dll 和 app.config 文件问题

    c# - 如何使我的 Outlook 2007 加载项受信任

    excel-2007 - Excel "Refresh All"与 OpenXML

    .net - 如何解决 VSTO 插件无法加载的问题?

    c# - 如何判断约会是一次 session ?

    c# - 在 powerpoint interop 中用颜色填充形状

    visual-studio - 我应该在 Visual Studio 加载项中的何处附加解决方案或项目事件?