0

我在 Stack Overflow 上搜索了几个问题,但没有任何帮助。问题是:

我在注册表中查找一些值(我知道该怎么做)。我知道如何设置属性。但我找不到如何在 WiX 中编写此表达式的方法。这就是我想用伪代码写的:

if(registryvalue contains substring1)
    set property to value1
if(registryvalue contains substring2)
    set property to value2

必须在运行时评估此条件。有没有办法写这个条件?一些示例代码会是什么样子?

4

1 回答 1

8

您可以使用类型 51 自定义操作来设置属性:

<CustomAction Id="SET_VALUE1" Property="TEST_PROPERTY" Value="value1" />
<CustomAction Id="SET_VALUE2" Property="TEST_PROPERTY" Value="value2" />

在安装序列中调用自定义操作时使用条件:

 <Custom Action="SET_VALUE1" After="AppSearch">Not Installed AND (REG_VALUE="substring1")</Custom>
 <Custom Action="SET_VALUE2" After="AppSearch">Not Installed AND (REG_VALUE="substring2")</Custom>

或者,您可以在 C# 等托管代码中编写自定义操作,并将其安排在AppSearch之后,以防您有很多比较。

于 2013-06-05T08:54:17.883 回答