Пользовательское действие WiX для вызова в зависимости от MSI при первой установке - PullRequest
1 голос
/ 08 февраля 2012

Я пытаюсь вызвать зависимую настройку MSI (хранящуюся в двоичной таблице) во время установки моего продукта (например, после InstallFiles в InstallExecuteSquence), используя настраиваемое действие «запустить исполняемый файл» в моем коде WiX (я использую WiX v3.5.2519 .0) вот так:

<Upgrade Id="{CB60C307-588D-47F5-87DD-7FDAE12434B0}">
    <UpgradeVersion Property="OTHERMSI"
                    Minimum="1.0.0"
                    Maximum="1.1.0"
                    IncludeMinimum="yes"
                    IncludeMaximum="yes"
                    OnlyDetect="yes"/>
</Upgrade>

<CustomAction Id="INSTALL_OTHERMSI"
              Impersonate="yes"
              Return="check"
              Execute="immediate"
              BinaryKey="Other.msi"
              ExeCommand=""/>

<Binary Id="Other.msi"
        SourceFile="c:\temp\sources\Other.msi"/>

<InstallExecuteSequence>
  <Custom Action="INSTALL_OTHERMSI"
          After="InstallFiles">OTHERMSI="" AND NOT PATCH AND NOT Installed</Custom>
</InstallExecuteSequence>

Когда я запускаю свой файл MSI, он проходит до настраиваемого действия "INSTALL_OTHERMSI". Но всегда происходит сбой с сообщением об ошибке:

Не удалось запустить программу, необходимую для завершения этой установки.

Я не хочу использовать загрузчик, я хочу чистый MSI. Я видел подобные установки (например, JetBrains ReSharper , который устанавливает Visual Studio 2010 SP1 во время установки), уже добивающийся цели. Как я могу решить эту проблему?

1 Ответ

2 голосов
/ 08 февраля 2012

Прежде всего установщик Windows не разрешает запуск двух установок одновременно. Таким образом, этот подход не будет работать. Что вам нужно, так это MSI-цепочка. Вы можете использовать элемент EmbeddedChainer

...