通过msi配置

时间:2014-12-16 10:41:52

标签: wix windows-installer wix3.7

我有wix脚本,如果在执行期间指定了它,则可以创建regitry值:

" msiexec / i my.msi MYPROP = value"

脚本:

      <Component Id='RegistryConfigServer' Win64='$(var.Def_Component_win64)' Permanent="yes" >
        <Condition>MYPROP</Condition>
        <RegistryKey Root='HKLM' Key='SOFTWARE\$(var.Def_ManufacturerName)' ForceCreateOnInstall='yes' ForceDeleteOnUninstall='no' >
          <RegistryKey Key='$(var.Def_ProductName)' ForceCreateOnInstall='yes' ForceDeleteOnUninstall='no' >
                    <RegistryValue Type="string"  Name='Server' Value="[MYPROP]" />
          </RegistryKey>
        </RegistryKey>
      </Component>

有效。但如果我先跑:&#34; msiexec / i my.msi&#34;之后&#34; msiexec / i my.msi MYPROP = value&#34; - 未创建注册表项!为什么?我可以更改行为以创建密钥吗?

1 个答案:

答案 0 :(得分:0)

您的组件已经安装,其状态不会被重新评估。

如果需要重新评估组件状态,则应将组件标记为可传递。

但可能有副作用:如果你开始&#34; msiexec / i my.msi MYPROP = value&#34;起初和之后&#34; msiexec / i my.msi&#34; - 您的组件将被删除。