首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装多个XLL外接程序时删除XLL外接程序

安装多个XLL外接程序时删除XLL外接程序
EN

Stack Overflow用户
提问于 2019-07-31 16:14:36
回答 2查看 602关注 0票数 0

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

  • 在注册表中找到active Excel键(本例为16.0):HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options
  • 在第一个可用的字符串值"OPEN“中写入XLL的路径。从这张截图中可以看到,我的Addin是按"OPEN1“键编写的。

在安装过程中,一切正常工作,但是如果使用WixInstaller卸载了其中一个加载项,问题就会开始。

例如,如果删除值"OPEN“,"OPEN1”和"OPEN2“中的加载项将停止工作。Excel显式查找"OPEN“、"OPEN1”、"OPENXXX“序列,如果缺少其中一个值,则停止枚举。我检查了ManageOpenKey的源代码-它“盲目地”删除加载项键,即使这个操作破坏了序列。

我认为唯一的解决办法是编写一个函数,重新排序所有的键.这看起来并不难,但我的问题是:有没有人找到了解决这个问题的办法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-31 18:35:32

是的,您必须重写打开的键,以便它们处于连续的提升序列中。

另外,如果用户使用XL管理器将其从active列表中移到不活动的加载项列表,也值得从加载项单元中删除该键。

票数 2
EN

Stack Overflow用户

发布于 2019-08-01 17:14:40

查尔斯威廉姆斯回答是正确的。卸载Excel外接程序时,应该重写并重新排序在卸载外接程序之后注册表中的值(如果有的话)。

我在问题中添加了一个Excel模板回购,以便我们修复它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57295089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档