如何解决为什么Excel禁用加载项?

我使用Add-in Express在.NET中编写了一个Microsoft Excel加载项,并将其部署到大约50个不同的用户站点,所有用户站点都在Windows XP上运行Office 2003。 大多数网站的加载项工作正常,但在less数情况下,Excel似乎在一段时间后禁用加载项,他们必须在禁用项目列表上find它才能重新启用。 重新启用似乎至less暂时关心它,尽pipe目前还不能确定是否会再次发生。 所以我想弄清楚为什么Excel禁用加载项,但我在这里找的只是一个普遍的方法来找出为什么Excel禁用加载项。 在我的情况下,加载项在远程站点上运行,而且我的访问权限有限。 我没有看到事件日志,没有发现任何东西。 我的外接程序也有错误日志logging,而且还没有发现任何东西。

有什么build议么?

我很肯定,Excel不会自动禁用你的插件(我还没有发现任何描述这种行为,请纠正我,如果我错过了)。 但是,如果插件崩溃/挂起等,然后下一次Excel启动时,popup一个对话框,说:“这个插件有一个致命的错误,你想禁用它? (正如克里斯指出的那样)。

我发现用户总是点击“是”,这样他们就可以继续工作了。 这可能是值得与你的用户交谈,看看他们是否看到过这样的事情。

显然,插件的一个潜在的问题,你想深究。 我想你的下一步可能是(我很抱歉,如果这些是你已经尝试的明显的debugging步骤):

  • 一定要添加一些configuration来启动你的日志logging来试图缩小发生的事情。
  • 与用户交谈,并找出导致在Excel中挂起/崩溃的情况,以便您可以尝试重现问题(如果这是一个崩溃,那么logging可能没有多大帮助)。
  • 阻止您的插件或您调用的代码中的调用可能导致用户杀死一个无响应的Excel?

祝你好运跟踪这个问题。

编辑 :我很抱歉,有些情况下Excel会自动禁用插件。 我在安全中心的插件中find了以下内容:

禁用未签名加载项的通知(代码将保持禁用状态)仅当您select“要求应用程序扩展受信任的发布者签名”checkbox时,此checkbox才可用。 在某些情况下,dynamic链接库(.dll)(dynamic链接库:一组可以从Visual Basic过程中调用并在运行时加载并链接到应用程序中的例程)包含加载项的文件可能是未签名的。 在这种情况下,启用受信任的发布者签名的加载项,但是无效的加载项被禁用。

禁用所有应用程序加载项(可能会损害function)如果您不信任任何加载项,请选中此checkbox。 所有加载项都被禁用,没有任何通知,而其他加载项checkbox不可用。

我看到这种情况发生,当一个加载项有一个致命的错误,过程中死亡。 Excel会注意到,并且会在下一次自动禁用或提供禁用。 你的加载项logging了这种错误吗?