Условия WIX CustomAction - PullRequest
       77

Условия WIX CustomAction

0 голосов
/ 27 февраля 2019

Я создал простой проект WIX с настраиваемым действием «Hello world» и проверил, как он работает.Я предполагал, что пользовательское действие будет выполняться только при первой установке, но оно выполнялось при каждом значительном обновлении (когда меняются и код продукта, и его версия).В журнале я обнаружил, что условие пользовательского действия проверяется после удаления - когда переменная Installed снова становится ложной.

Как выполнить настраиваемое действие только при первой установке, а не при основных обновлениях, используя набор инструментов WIX?Есть ли способ без ручного использования реестра?

<Product Id="52D5F5ED0C3F453CA70E280ECD7D7400"
         Name="TestWiXSetup"
         Language="1033"
         Version="1.0.2.0"
         Manufacturer="Some RnD"
         UpgradeCode="12777105-8bc1-47b5-8b36-2705ef02cb79">
  <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

  <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
  <MediaTemplate EmbedCab='yes' />

  <Feature Id="ProductFeature" Title="TestWiXSetup" Level="1">
    <ComponentRef Id="Component" />
  </Feature>
  <Binary Id="HW" SourceFile="HW.exe" />
  <CustomAction Id="HWA" BinaryKey="HW" ExeCommand="" Execute='deferred'/>
  <InstallExecuteSequence>
    <Custom Action='HWA' After='InstallFinalize'>NOT Installed</Custom>
  </InstallExecuteSequence>
</Product>

<Fragment>
  <Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
      <Directory Id="INSTALLFOLDER" Name="TestWiXSetup">
        <Component Id="Component">
          <File Source="ToDeploy.txt"/>
        </Component>
      </Directory>
    </Directory>
  </Directory>
</Fragment>

1 Ответ

0 голосов
/ 27 февраля 2019

Попробуйте использовать NOT Installed AND NOT UPGRADINGPRODUCTCODE вместе.Существует также существующая тема

...