问题:
你可能被下面的异常所困扰:
Updater::getUpdaerId()::getAddInId() does not match currently active add-in's AddInId
看到这个异常,你可能还要去调试,确定这个addinId怎么就不匹配了,吧啦吧啦调试半天,也没弄出个所以然。
问题剖析:
其实这个错误提示可能给了一些误导,之所以产生这个异常很大程度上是因为你在调用UpdaterRegistry中相关的注册,注销方法时没有处在一个命令上下文中,所以Application.ActiveAddInId取到的值为null,导致上面的错误。
所谓的命令上下文,我理解的有以下常用的四种
1、IExternalCommand的Execute方法;
2、IExternalApplication的OnStartup方法和OnShutdown方法;
3、各种Application中的Idling事件 ;
4、外部事件ExternalEvent 关联的IExternalEventHandler执行方法
本文解析Updater错误,焦点在于理解如何在IExternalCommand、OnStartup/OnShutdown等命令上下文中正确操作,以避免ActiveAddInId为null引发的错误。
1189

被折叠的 条评论
为什么被折叠?



