Add multiString registry value using WiX?

半腔热情 提交于 2019-12-22 05:18:12

问题


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>

回答1:


Use MultiStringValue element.




回答2:


Actually all it needs to be is this:

<RegistryValue Type="multiString" Name="Value Name">
  <MultiStringValue>1</MultiStringValue>
  <MultiStringValue>2 &lt; 3</MultiStringValue>   <!-- Stands for 2 < 3 -->
  <MultiStringValue>33</MultiStringValue>
</RegistryValue>


来源:https://stackoverflow.com/questions/3749863/add-multistring-registry-value-using-wix

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!