我正在尝试重新加载加载项来处理我自己的更新运行时(使用单击一次部署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;
我试过把它放在additonal try / catch块里面,但它不起作用。在打电话时
Connect = false
我有ThreadAbortException
,我无法阻止它发生。
我会简单地禁用并启用代码中的加载项,此时我无法实现。
答案 0 :(得分:0)
AFAIK是不可能的,因为Connect = false
告诉托管运行时抛弃你的线程...你可以提供2个AddIns(真正的一个和一个严格处理更新的,每个AddIn可以处理例如更新另一个)...