我正在尝试重新加载外接程序来处理我自己的更新运行时(使用单击一次部署API,但提供silend更新)
但是我已经在重新加载插件上吃了苦头。我现在的任务就是简单地卸载并重新加载插件。我发现的结果类似于以下内容:
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,这是我无法阻止的。
我会简单地从代码中禁用和启用插件,目前我无法做到这一点。
发布于 2012-11-23 17:26:33
这是不可能的,因为Connect = false告诉宿主运行时丢弃你的线程...您可以交付2个AddIns (真正的AddIn和严格处理更新的第二个a,例如,每个you可以处理另一个的更新)……
https://stackoverflow.com/questions/13526015
复制相似问题