我有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; - 未创建注册表项!为什么?我可以更改行为以创建密钥吗?
答案 0 :(得分:0)
您的组件已经安装,其状态不会被重新评估。
如果需要重新评估组件状态,则应将组件标记为可传递。
但可能有副作用:如果你开始&#34; msiexec / i my.msi MYPROP = value&#34;起初和之后&#34; msiexec / i my.msi&#34; - 您的组件将被删除。