首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理共享注册表值

处理共享注册表值
EN

Stack Overflow用户
提问于 2015-05-15 19:12:32
回答 2查看 131关注 0票数 0

我正在开发一个安装程序,它正在创建注册表值,并在卸载时删除它们。但是,我正在使用的一些注册表值可以与其他配套应用程序共享。我只希望它删除注册表值,如果它是使用这些注册表的唯一组件。如果安装了使用这些注册表值的其他应用程序,我的卸载不应该删除它们。我将如何创建这个条件呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-16 04:22:59

我认为通过使用基本的MSI组件规则来实现您要寻找的目标:

  • 设置此共享注册表值的所有MSI都需要将值设置为组件的KeyPath。
  • 组件需要有相同的组件-guid。

如果这些值在所有MSI中都是常见的,那么注册表值应该只在卸载一个产品时被删除,而不是删除整个值。

票数 0
EN

Stack Overflow用户

发布于 2015-05-17 11:09:35

在jbudrea回答的基础上,对我来说,这是一个合并模块很有用的场景。您可以在10个安装程序中拥有10个组件,并希望您保持GUID保持同步,或者您可以在合并模块中进行一次,并引用它10次。不要重复(干)。这主要用于注册表数据,如COM注册或文件扩展名处理程序。

对于某些数据,例如配置数据,永久组件可能是有意义的。占用空间很小,在卸载所有产品并重新安装其中一个产品之后,数据仍然存在是很好的。这还假设您正在执行一些属性持久化模式。

配置数据的最后一个想法是在安装过程中根本不做。相反,在应用程序的第一次运行时保存该设置,现在安装将不再管理它,并且会像上面那样在卸载时留下它。(我喜欢把配置数据看作用户数据,通常是MSI说要留下的用户数据。)

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

https://stackoverflow.com/questions/30267113

复制
相关文章

相似问题

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