0

我正在尝试重新加载加载项以处理我自己的更新运行时(使用单击一次部署 API,但提供静默更新)

但我坚持重新加载加载项。我当前的任务只是简单的卸载和重新加载加载项。我发现与此类似:

private void Reload()
    {
        try
        {
            COMAddIns comAddIns = Globals.ThisAddIn.Application.COMAddIns;
            COMAddIn addIn =
                comAddIns.Cast<COMAddIn>().FirstOrDefault(addin => string.Equals(addin.Description, "OutlookAddIn1", StringComparison.OrdinalIgnoreCase));

            if (addIn != null)
            {
                addIn.Connect = false;
                addIn.Connect = true;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

但是这个简单的崩溃:

addIn.Connect = false;

我试着把它放在额外的 try/catch 块中,但它不起作用。打电话时 Connect = false我有ThreadAbortException,我无法阻止发生。

我会简单地从代码中禁用和启用加载项,此时我无法实现。

4

1 回答 1

0

AFAIK 这是不可能的,因为它Connect = false告诉托管运行时扔掉你的线程......你可以提供 2 个插件(真正的插件和一个只严格处理更新的插件,例如每个插件可以处理另一个插件的更新) ...

于 2012-11-23T09:26:32.970 回答