wix
  • windows-installer
  • wix3.7
  • 2014-12-16 2 views 0 likes 
    0

    У меня есть WiX сценарий, который может создать значение regitry если он был указан во время выполнения:Настройка с помощью MSI

    "Msiexec/я My.msi MYPROP = значение"

    сценарий:

     <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> 
    

    Оно работает. Но если я запускаю сначала: «msiexec/i my.msi», а после этого «msiexec/i my.msi MYPROP = значение» - не создается ключ реестра! Зачем? Могу ли я изменить поведение, чтобы создать ключ?

    ответ

    0

    Ваш компонент уже установлен, и его состояние не будет переоцениваться.

    Если вам нужно переоценить состояние компонента, вы должны пометить компонент как транзитивный.

    Но может быть и побочный эффект: если вы начнете сначала «msiexec/i my.msi MYPROP = значение», а затем «msiexec/i my.msi» - ваш компонент будет удален.

    +0

    работает, только если я укажу REINSTALL = ALL –

    Смежные вопросы