2011-03-30 82 views
2

我有我的第一个Outlook插件开发,2007外接部署为DLL

我可以看到,调试外接自动打开的前景,这个问题我注意到,前景约需20秒打开时,我的加载项附加(作为新菜单与一个按钮)。
我想这可能由事实IM引起调试我的项目!
我发表我的加载到我的本地主机,然后使用点击一次的事情安装了它,但仍挂在负载
outlookAddIn2 .vsto文件被outlook用作我的自定义加载项,但是当我看到其他加载项时,他们全都是dll而不是vsto加上他们不会挂断启动前景

我应该如何部署我的项目为DLL,但不冻结我的启动前景?

预先感谢您。

PS:最终的加载项将在我们的内部网的员工面貌实现占

编辑:

namespace OutlookAddIn2 
{ 
    public partial class ThisAddIn 
    { 



    private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
     MyToolBar(); 
    } 

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e) 
    { 
    } 

    Office.CommandBar mainMenuBar; 
    Office.CommandBarPopup oldMenuBar; 
    Office.CommandBarPopup myMenuBar; 
    Office.CommandBarButton myButton; 

    private void MyToolBar() 
    { 
     try 
     { 
      mainMenuBar = this.Application.ActiveExplorer().CommandBars.ActiveMenuBar; 

      oldMenuBar = (Office.CommandBarPopup)this.Application.ActiveExplorer().CommandBars.ActiveMenuBar.FindControl 
       (
       Office.MsoControlType.msoControlPopup, missing, "Katakit", true,true 
       ); 
      if (oldMenuBar != null) 
       oldMenuBar.Delete(true); 
      myMenuBar = (Office.CommandBarPopup)mainMenuBar.Controls.Add(
       Office.MsoControlType.msoControlPopup, 
       missing, missing, missing, false); 


      if (myMenuBar != null) 
      { 
       // Add a button to the new toolbar. 
       myMenuBar.Caption = "Katakit"; 
       myMenuBar.Visible = true; 
       myMenuBar.Tag = "Katakit"; 
       myButton = (Office.CommandBarButton)myMenuBar.Controls.Add 
        (Office.MsoControlType.msoControlButton, missing, missing, missing, true); 
       myButton.Caption = "Pending Summary 2"; 
       myButton.FaceId = 500; 
       myButton.Tag = "btnPendingSummary"; 
       myButton.Visible = true; 


      } 
     } 
     catch (System.Exception ex) 
     { 
      System.Windows.Forms.MessageBox.Show("Error: " + ex.Message.ToString() 
               , "Error Message"); 
     } 
    } 

    #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 
} 

}

+0

你的插件是否在启动时执行一些重负载? – HABJAN 2011-03-30 13:20:49

+0

没有,只是新的菜单和一个按钮 – 2011-03-30 13:22:39

+0

20秒加载只发生在第一次或每次? – HABJAN 2011-03-30 13:25:24

回答

1

也许你碰上了“检查发行商的证书吊销”瓶颈。它与Outlook无关,但与.net程序集运行在没有适当的互联网访问的环境中。在Add-in Express论坛中参见this entry,参考this discussion。您可以禁用IE设置,也可以尝试验证Internet访问。

当我的VMWare开发机器认为它具有网络访问权限但主机的网络已关闭时,我总是将自己陷入这个问题。虚拟机桥接到主机,但主机的网络电缆未插入,或者如果VMWare guest虚拟机是运行域控制器(=>网络可用)的域的一部分,但该网络没有Internet访问权,并且没有适当的认证机构。在这种情况下,启动时间很慢。如果主机可以访问Internet,则无需启动延迟。

+0

提到的步骤没有做到这一招!无论如何,我拔掉网线测试这个,它工作正常,我猜如果目标机器**互联网接入**那么这将解决我的问题,对吧? – 2011-04-03 06:10:40

+0

是的,如果目标机器上网,我从来没有遇到过这个问题。 AFAK,也可以将用于签署DLL的证书添加到域的CA权限 - 但我在这些管理任务中的知识非常有限,因此您可以向其他人询问此解决方案。 – 2011-04-04 12:31:13