是否有可能重新加载outlook Office.ComAddIn列表?

时间:2015-05-19 07:43:19

标签: c# outlook outlook-addin outlook-2010

背景是我有一个旧的插件,我用它来安装其他插件并删除ThisAddIn_Startup上的旧插件。一切似乎工作正常,但发现一台解决方案无效的计算机。

我成功安装并删除了插件,但是首次加载时无法加载插件。

user_info_xxx

所以这个方法适用于所有其他计算机,但问题是在这台PC上它似乎没有在app.COMAddIns列表中找到它。所以我的问题是如何以编程方式重新启动COMAddIns列表?

2 个答案:

答案 0 :(得分:2)

如果有人面临同样的问题,这似乎对我有用。

COMAddIns.Update();

答案 1 :(得分:1)

COMAddins集合的Update方法用于从Windows注册表刷新COM加载项列表。

但为什么需要在代码中创建一个新的Outlook应用程序实例?您是否开发了Outlook加载项?如果是这样,您可以使用加载项类的Application属性。或者,您可以使用Marshal类的GetActiveObject方法在运行时获取正在运行的Outlook实例的实例。有关详细信息,请参阅How to: Get and Log On to an Instance of Outlook

此外,我建议打破调用链并在单独的代码行上声明每个属性或方法调用。因此,您将能够立即释放所有基础COM对象。完成使用后,使用System.Runtime.InteropServices.Marshal.ReleaseComObject释放Outlook对象。然后在Visual Basic中将变量设置为Nothing(C#中为null)以释放对该对象的引用。有关详细信息,请参阅MSDN中的Systematically Releasing Objects文章。