c# - 此插件导致 Outlook 启动缓慢

标签 c# outlook vsto add-in

我正在使用 C#.NET 4.5 开发 Outlook 插件项目 但是在我部署之后,有时 outlook 会禁用我的插件,并显示此消息。 “此插件导致 Outlook 启动缓慢”“我不知道我的插件有什么问题。 这个只有几行代码,ThisAddIn_Startup在这个项目中是空的。 这是代码...

   public partial class ThisAddIn
   {
   private void ThisAddIn_Startup(object sender, System.EventArgs e)
   {

   }

   private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
   {
   }
   protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
   {
       return new Ribbon1();
   }


   #region VSTO generated code

   /// <summary>
   /// Required method for Designer support - do not modify
   /// the contents of this method with the code editor.
   /// </summary>
   private void InternalStartup()
   {
       this.Startup += new System.EventHandler(ThisAddIn_Startup);
       this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
   }

   #endregion
   }


   <?xml version="1.0" encoding="UTF-8"?>
  <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"         önLoad="Ribbon_Load">
   <contextMenus>
   <contextMenu idMso="ContextMenuContactItem">
     <menuSeparator id="mniMailItemMenuSeparator" />
     <button id="customButton"
            label="Call using Software"   insertBeforeQ="Copy"
          imageMso="Call"
           önAction="OnMyButtonClick" />

    </contextMenu>
   <contextMenu idMso="ContextMenuMailItem">
     <menuSeparator id="mailmenusep1" />
     <button id="mailbutton" insertBeforeQ="Copy"
          label="Call using Software"

         imageMso="Call"
           önAction="MailItemCallNumbers"   />

   </contextMenu>
  </contextMenus>

 </customUI>

最佳答案

从 Outlook 2013 开始,Microsoft 引入了新的加载项性能标准。有关详细信息,请参阅 http://msdn.microsoft.com/en-us/library/office/jj228679.aspx#ol15WhatsNew_AddinDisabling

在您的情况下,Outlook 正在加载 .Net 框架,并将成本视为加载项的一部分。 native COM 加载项的加载速度往往比 .Net 加载项快。

正如文章所指出的(在“系统管理员对加载项的控制”一节中),有一个组策略设置允许您指定哪些加载项始终启用、始终禁用(阻止)或可由以下人员配置用户。

虽然不推荐,但正如 Outlook 在选择“始终启用此加载项”时所做的那样 (as described here),您可以直接将您的加载项添加到以下注册表项。

HKCU\Software\Microsoft\Office\15.0\Outlook\Resiliency\DoNotDisableAddinList

要提高基于 VTSO 的插件的性能,请参阅 Performance Improvements Coming Soon to a Service Pack Near You

有关更改加载项加载时间的信息,请参阅 Delay-loading the CLR in Office Add-ins .

关于c# - 此插件导致 Outlook 启动缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507350/

相关文章:

vba - 按接收日期指定从 Outlook 获取电子邮件到 Excel

ms-word - 我有一个 VSTO 应用程序作为 MS Word 的加载项,我想为功能区按钮设置键盘快捷键

vsto - 以编程方式从功能区获取功能区控件

c# - LeftMouseUp 未触发 - Bing map MapPolyline

c# - 如何测试类型是否为原始类型

.net - Outlook 约会功能区按钮事件

vba - 将所选项目更改为下一个或上一个

automation - 在 PowerPoint 中以编程方式播放形状的声音

c# - WPF AutoCompleteBox - 如何限制它仅从建议列表中选择?

c# - 检测应用关闭