安装多个 XLL 插件时删除 XLL 插件

Remove XLL addin when multiple XLL addins are installed

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

安装中一切正常,但如果使用 WixInstaller 卸载其中一个插件,问题就会出现。

例如,如果删除值 "OPEN",则 "OPEN1" 和 "OPEN2" 处的插件将停止运行。 Excel 明确查找 "OPEN"、"OPEN1"、"OPENXXX" 序列,如果缺少其中一个值 - 它会停止枚举。 我检查了 ManageOpenKey 的源代码 - 它 "blindly" 删除了插件密钥,即使此操作破坏了序列。

我想到的唯一解决方案是编写一个重新排序所有键的函数。这看起来并不难,但我的问题是: 有人找到解决方案了吗?

是的,您必须重写 OPEN 键,使它们处于连续的升序中。
如果用户使用 XL 插件管理器将其从插件的活动列表移至非活动列表,也值得从 ADDINS 配置单元中删除密钥。

查尔斯·威廉姆斯 是正确的。卸载 Excel 加载项时,您应该重写和重新排序注册表中卸载加载项后的值(如果有)。

我添加了一个 issue to the Excel-DNA WiXInstaller Template repo,以便我们修复它。