2013-12-10 37 views
0

我已经配置了一个这样的WiX的安装程序:传递多字符串值,通过命令行上一步

<Property Id="MY_PROPERTY"> 

...

<Registry Name="MyValue" Type="multiString" Value="[MY_PROPERTY]" /> 

现在我想在命令行通过这个属性值作为列表:

MsiExec.exe /i MyInstaller.msi /qb MY_PROPERTY="One[~]Two[~]Three" 

但是,安装程序不会将值分成列表和文字值是wri相反。

如果我硬编码元素它工作正常:

<Registry Name="MyValue" Type="multiString" Value="One[~]Two[~]Three" /> 

有谁知道如何在命令行的多字符串注册表值指定值的列表?由于事先

回答

0

REG_MULTI_SZ

空终止字符串序列,通过一个空字符串终止(\ 0)。 以下是一个示例: String1 \ 0String2 \ 0String3 \ 0LastString \ 0 \ 0 第一个\ 0终止第一个字符串,第二个到最后一个\ 0终止最后一个字符串,最后\ 0终止序列。请注意,最终的终结符必须考虑到字符串的长度。

所以按照这个LINK你应该这样做:

MY_PROPERTY = “一个\ 0Two \ 0Three \ 0”

对于MULTISTRINGValues检查这个元素:MULTISTRINGVALUE

+0

REG ADD“HKLM \软件\ abc“/ v abcd/t REG_MULTI_SZ/d”one \ 0two \ 0three \ 0“ – Isaiah4110

+0

是的,REG ADD的工作方式,但我正在寻找一种方法让我的WiX安装程序创建基于多值的密钥从命令行输入。 – josemesona

+0

我尝试将Action属性设置为“append”,“prepend”和“write”。它总是写入字面值而不是将其分成列表 – josemesona