我用C#写了一个基于Excel的Addin。使用以下技术在用户计算机上注册它(来自WixInstaller和ManageOpenKey):

在安装过程中,一切正常工作,但是如果使用WixInstaller卸载了其中一个加载项,问题就会开始。
例如,如果删除值"OPEN“,"OPEN1”和"OPEN2“中的加载项将停止工作。Excel显式查找"OPEN“、"OPEN1”、"OPENXXX“序列,如果缺少其中一个值,则停止枚举。我检查了ManageOpenKey的源代码-它“盲目地”删除加载项键,即使这个操作破坏了序列。
我认为唯一的解决办法是编写一个函数,重新排序所有的键.这看起来并不难,但我的问题是:有没有人找到了解决这个问题的办法?
发布于 2019-07-31 18:35:32
是的,您必须重写打开的键,以便它们处于连续的提升序列中。
另外,如果用户使用XL管理器将其从active列表中移到不活动的加载项列表,也值得从加载项单元中删除该键。
发布于 2019-08-01 17:14:40
查尔斯威廉姆斯回答是正确的。卸载Excel外接程序时,应该重写并重新排序在卸载外接程序之后注册表中的值(如果有的话)。
https://stackoverflow.com/questions/57295089
复制相似问题