Add multiString registry value using WiX?
Now I use something like this:
<Component Id="RegistryEntries" Guid="<开发者_运维百科guid>" KeyPath="yes">
<RegistryKey Root="HKCU" Key="<path>" Action="createAndRemoveOnUninstall">
<RegistryValue Name="myStrings" Action="append" Type="multiString">
1
</RegistryValue>
<RegistryValue Name="myStrings" Action="append" Type="multiString">
2
</RegistryValue>
<RegistryValue Name="myStrings" Action="append" Type="multiString">
3
</RegistryValue>
<RegistryValue Name="myString" Value="x" Type="string"/>
</RegistryKey>
</Component>
But I have the next error:
The primary key "reg<key>"
is duplicated in table 'Registry'. Please remove one of the entries or rename a part of the primary key to avoid the collision.
ANSWER: After Yan's answer my xml looks like:
<Component Id="RegistryEntries" Guid="<guid>">
<RegistryKey Root="HKCU" Key="<path>" Action="createAndRemoveOnUninstall">
<RegistryValue Name="myStrings" Action="append" Type="multiString">
<MultiStringValue Name="myStrings" Action="append" Type="multiString">
1
</MultiStringValue>
<MultiStringValue Name="myStrings" Action="append" Type="multiString">
2
</MultiStringValue>
<MultiStringValue Name="myStrings" Action="append" Type="multiString">
3
</MultiStringValue>
</RegistryValue>
<RegistryValue Name="myString" Value="x" Type="string"/>
</RegistryKey>
</Component>
Actually all it needs to be is this:
<RegistryValue Type="multiString" Name="Value Name">
<MultiStringValue>1</MultiStringValue>
<MultiStringValue>2 < 3</MultiStringValue> <!-- Stands for 2 < 3 -->
<MultiStringValue>33</MultiStringValue>
</RegistryValue>
Use MultiStringValue element.
精彩评论