Outlook 2007加载项部署作为DLL

时间:2011-03-30 13:19:00

标签: c# deployment vsto outlook-addin outlook-2007

我开发了第一个Outlook插件,

我可以看到调试加载项会自动打开Outlook,我注意到当我的加载项附加时(作为新菜单打开时,Outlook开启 20秒的问题)一键) 我认为这可能是因为我正在调试我的项目!, 我将我的加载项发布到我的localhost,然后使用click click一次安装它,但仍然挂起加载
outlook使用 outlookAddIn2.vsto 文件作为我的自定义加载项,但是当我看到其他加载项时,所有这些加载项都是dll而不是vsto加上它们不会挂起开始时的前景

我应该怎么做才能将我的项目部署为dll,而不是冻结我在启动时的前景?

提前谢谢。

p.s。:最终,加载项将在我们的Intranet员工展望帐户中实施

编辑:

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
}

}

1 个答案:

答案 0 :(得分:1)

可能您遇到了“检查发布者证书撤销”的瓶颈。它与Outlook无关,但是在没有适当的Internet访问的环境中运行.net-assemblies。请参阅加载项快速论坛中的this entry,并提及this discussion。您可以禁用IE设置,或尝试验证Internet访问。

当我的VMWare开发机器认为它具有网络访问权限但是主机的网络被关闭时,我总是自己解决这个问题。 VM已桥接到主机,但未插入主机的网络电缆,或者VMWare guest虚拟机是域控制器正在运行的域(=&gt;网络可用),但此网络无法访问Internet没有适当的证书颁发机构。在这种情况下,启动时间较慢。如果主机可以访问Internet,则无启动延迟。