Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Outlook加载项已禁用,因为速度太慢_C#_Outlook_Outlook Addin_Add In - Fatal编程技术网

C# Outlook加载项已禁用,因为速度太慢

C# Outlook加载项已禁用,因为速度太慢,c#,outlook,outlook-addin,add-in,C#,Outlook,Outlook Addin,Add In,我正在用C为Outlook开发一个简单的外接程序。现在,当我测试该版本时,Outlook突然打印了一条错误消息并禁用了我的外接程序: 此加载项导致Outlook启动缓慢。1.594秒 我不确定这是什么原因造成的。我在加载时所做的全部工作如下: 功能区按钮 我使用的是一个功能区按钮,我在加载项中对其进行初始化,如下所示: protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityOb

我正在用C为Outlook开发一个简单的外接程序。现在,当我测试该版本时,Outlook突然打印了一条错误消息并禁用了我的外接程序:

此加载项导致Outlook启动缓慢。1.594秒

我不确定这是什么原因造成的。我在加载时所做的全部工作如下:

功能区按钮 我使用的是一个功能区按钮,我在加载项中对其进行初始化,如下所示:

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
      return new MyRibbonButton();
    }
功能区按钮构造函数 功能区按钮用于初始化对象。所以还没什么特别的

public MyRibbonButton()
{
    this.guiSettings = new AppSettingsManager(root.localmachine, "GUI", false);
}

...

public AppSettingsManager(root type, string subpath, bool writable)
{
    if (subpath != "")
    {
        this.PATH += @"\" + subpath;
    }
    this.type = type;
    this.writable = writable;
}
图标 在同一个MyRibbonButton类中,我根据注册表中的值声明要用于按钮的图标

public Bitmap imageSuper_GetNotifyImage(IRibbonControl control)
{
    switch (guiSettings.GetValueInt32("Icon", 1))
    {
        case 1:
            return Properties.Resources.icon1;
        case 2:
            return Properties.Resources.icon2;
        case 3:
            return Properties.Resources.icon3;
        default:
            return Properties.Resources.icon1;
    }

}

正如你所看到的,我没有做任何特别的事情,除了在最后一部分读到的注册表。您认为这会导致Outlook启动缓慢吗?如果是这样,我如何优化它。

加载.Net系统会受到处罚。以前有一个预热注册表项,可以用来强制Outlook加载正确版本的.Net运行时,而不会受到惩罚,但该注册表项不再工作


<> P>我唯一能解决这个问题的方法是在Delphi C++中创建一个存根插件,如果不是更好,那就只需在20ms内加载Outlook并启动计时器就可以了。当计时器启动Outlook时,Outlook将处于空闲状态且不监视加载项,它将使用该接口加载从属.Net加载项。

我有一个插件,它几乎和您的插件一样简单,我也遇到了同样的问题。我的只是将侦听器添加到3个事件中。。我放弃了,又回到了学校macros@BugFinder如果你发现了什么,请告诉我。你知道如何解决这个问题吗?我的结论是,根据outlook的说法,整个.net框架中提供的某些东西已经使其速度变慢了。。“当我这样做是为了让我的生活更轻松,而且事实证明这是不可能的,我放弃了这个想法。”BugFinder伤心地听到。不幸的是,我不得不坚持使用插件。似乎我必须找到一个解决办法。这是你写过博客/分享过的,还是你愿意分享的?听起来这将是非常有用的。我无法分享任何东西——它是商业产品的一部分。对不起,不用担心,谢谢。永远感谢您在这里分享知识!