使用 .msi 包,如果它们不存在,我想创建一些注册表项,如果它们确实存在,则不要管它们,如果程序被删除,则不要删除它们。我通过向以下 msi 表添加条目来完成此操作(使用 Orca):Components、FeatureComponents、Registry 和 LockPermissions。我的问题是我应该如何处理这些键的 Component 表的 ComponentID 中使用的 GUID?好像有3个选择。
1) 将它们分配一次,并在未来版本的 msi 中单独保留它们
2) 每次生成新版本时分配新版本
3)使用NULL(根据http://msdn.microsoft.com/en-us/library/aa368007(VS.85).aspx)我没有试过这个。
其中一个是否比另一个更受欢迎?一个比另一个有任何后果吗?(如果程序被删除,我宁愿留下尽可能少的东西)。
我也很想知道下面关于永久属性位(16)的评论是什么意思。
如果设置了此位,则安装程序在卸载期间不会删除该组件。安装程序会在 Windows Installer 注册表设置中为该组件注册一个额外的系统客户端。
在哪里可以找到这些条目?