0

我们的安装程序有几个可选但互斥的组件,但每个组件都使用相同的注册表设置来存储路径。我们现在面临的问题是一些用户希望更改组件,取消选择一个并选择另一个。我们看到注册表设置被删除。

正如我们所料,已卸载的组件注册表设置被标记为“不存在”,但新组件首先按照我们的预期再次设置为“本地”,然后重置为“空”。在下面的日志提取中,InDesignCS4RegistryKeys应删除并InDesignCS5RegistryKeys应安装。

MSI (s) (34:F0) [11:44:08:928]:组件:InDesignCS5RegistryKeys;已安装:不存在;请求:本地;行动:本地 MSI (s) (34:00) [11:44:36:200]:组件:InDesignCS4RegistryKeys;安装:本地;请求:缺席;行动:缺少 MSI (s) (34:00) [11:44:36:201]:组件:InDesignCS5RegistryKeys;已安装:不存在;请求:空;行动:空

删除了 InDesignCS4 的其他组件并添加了 InDesignCS5。

关于如何解决这个问题的任何想法?

4

1 回答 1

2

用户不选择和取消选择组件,他们选择和取消选择功能。

如果您现在有 3 个组件,请将注册表数据移动到第 4 个组件。将前 3 个组件与它们自己的特征相关联,并将第 4 个组件与所有三个特征相关联。

在您的 UI 和执行序列中进行检查以强制这些功能是互斥的。

如果您想拥有 1 个功能并根据组件条件驱动组件选择,请执行相同的操作,但在第 4 个组件上要么没有条件,要么具有 Component1 表达式或 Component2 表达式或 Component3 表达式。

于 2012-08-24T17:19:30.620 回答