C# OnStartupComplete不是客户端环境中的调用

C# OnStartupComplete不是客户端环境中的调用,c#,vsto,visio,office-addins,C#,Vsto,Visio,Office Addins,我有一个Visio加载项。 在客户端环境中升级到.Net 4(从3.5版)后,OnConnection之后不会调用OnStartupComplete。 但在开发环境中,一切都很好 public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) public void OnStartupComple

我有一个Visio加载项。 在客户端环境中升级到.Net 4(从3.5版)后,OnConnection之后不会调用OnStartupComplete。 但在开发环境中,一切都很好

 public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
 public void OnStartupComplete(ref System.Array custom)
我很确定OnConnection中没有例外


外接程序未进入非活动状态。

首先,请确保在有问题的PC上安装了所有必需的Prerequses。注意,应安装完整版本的.Net framework(而不是客户端配置文件)。此外,我建议检查电脑上的信任中心设置。宏安全设置也可以应用于加载项

Microsoft Office应用程序可以禁用行为异常的加载项。如果应用程序未加载外接程序,则应用程序可能已硬禁用或软禁用外接程序

当外接程序导致应用程序意外关闭时,可能会发生硬禁用。如果在外接程序中的启动事件处理程序正在执行时停止调试器,则在开发计算机上也可能发生这种情况

当外接程序产生不会导致应用程序意外关闭的错误时,可能会发生软禁用。例如,如果应用程序在启动事件处理程序执行时引发未经处理的异常,则可能会软禁用外接程序

重新启用软禁用的外接程序时,应用程序会立即尝试加载该外接程序。如果最初导致应用程序软禁用外接程序的问题尚未解决,则应用程序将再次软禁用外接程序

你可以在这篇文章中了解更多


最后,您可以尝试使用Fuslogvw.exe实用程序诊断.Net中的程序集绑定。有关更多信息,请参阅

调试此问题的唯一方法是手动从OnConnection调用OnStartupComplete,以了解发生了什么


在我的例子中,某些类型和接口之间存在差异,因此当它想在启动OnStartupComplete的第一行之前加载OnStartupComplete中使用的某些类型时,它得到的结果是“方法没有实现”。

嗨,Eugene,感谢您的回复。在硬禁用和软禁用中,加载项应处于非活动或禁用状态。在我的情况下,它仍然处于活动状态。您是否能够使用新创建的加载项重现该问题?