Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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 Office.ComAddIn列表?_C#_Outlook_Outlook Addin_Outlook 2010 - Fatal编程技术网

C# 是否可以重新加载outlook Office.ComAddIn列表?

C# 是否可以重新加载outlook Office.ComAddIn列表?,c#,outlook,outlook-addin,outlook-2010,C#,Outlook,Outlook Addin,Outlook 2010,背景是我有一个旧的加载项,我使用它安装其他加载项并在此加载项启动中删除旧的加载项。一切似乎都很正常,但却发现一台计算机的解决方案不起作用 我成功安装并删除了加载项,但第一次加载时未加载加载项 private static void EnableNewPlugin() { Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); obj

背景是我有一个旧的加载项,我使用它安装其他加载项并在此加载项启动中删除旧的加载项。一切似乎都很正常,但却发现一台计算机的解决方案不起作用

我成功安装并删除了加载项,但第一次加载时未加载加载项

private static void EnableNewPlugin()
{
    Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
    object index = "NewAddin";
    Office.COMAddIn addin = null;
    addin = app.COMAddIns.Item(ref index);
    addin.Connect = false;
    addin.Connect = true;
}

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

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

COMAddIns.Update();

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

COMAddIns.Update();

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

COMAddIns.Update();

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

COMAddIns.Update();
COMAddins集合的方法用于从Windows注册表刷新COM加载项列表

但是,为什么需要在代码中创建新的Outlook应用程序实例?您是否开发Outlook加载项?如果是,则可以使用外接程序类的应用程序属性。或者,您可以使用封送处理类的GetActiveObject方法在运行时获取运行Outlook实例的实例。有关更多信息,请参阅

我还建议打破调用链,在单独的代码行中声明每个属性或方法调用。因此,您将能够立即释放所有底层COM对象。用于在使用完Outlook对象后释放该对象。然后在Visual Basic中将变量设置为Nothing(在C#中为null),以释放对对象的引用。请阅读MSDN中的文章了解更多信息。

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

但是,为什么需要在代码中创建新的Outlook应用程序实例?您是否开发Outlook加载项?如果是,则可以使用外接程序类的应用程序属性。或者,您可以使用封送处理类的GetActiveObject方法在运行时获取运行Outlook实例的实例。有关更多信息,请参阅

我还建议打破调用链,在单独的代码行中声明每个属性或方法调用。因此,您将能够立即释放所有底层COM对象。用于在使用完Outlook对象后释放该对象。然后在Visual Basic中将变量设置为Nothing(在C#中为null),以释放对对象的引用。请阅读MSDN中的文章了解更多信息。

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

但是,为什么需要在代码中创建新的Outlook应用程序实例?您是否开发Outlook加载项?如果是,则可以使用外接程序类的应用程序属性。或者,您可以使用封送处理类的GetActiveObject方法在运行时获取运行Outlook实例的实例。有关更多信息,请参阅

我还建议打破调用链,在单独的代码行中声明每个属性或方法调用。因此,您将能够立即释放所有底层COM对象。用于在使用完Outlook对象后释放该对象。然后在Visual Basic中将变量设置为Nothing(在C#中为null),以释放对对象的引用。请阅读MSDN中的文章了解更多信息。

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

但是,为什么需要在代码中创建新的Outlook应用程序实例?您是否开发Outlook加载项?如果是,则可以使用外接程序类的应用程序属性。或者,您可以使用封送处理类的GetActiveObject方法在运行时获取运行Outlook实例的实例。有关更多信息,请参阅

我还建议打破调用链,在单独的代码行中声明每个属性或方法调用。因此,您将能够立即释放所有底层COM对象。用于在使用完Outlook对象后释放该对象。然后在Visual Basic中将变量设置为Nothing(在C#中为null),以释放对对象的引用。在MSDN的文章中阅读更多关于这方面的内容