Я определил несколько пользовательских действий в моей настройке WIX, и эти действия вызывают сторонние EXE, от которых зависит наше приложение. Пользователь решает установить или игнорировать эти сторонние приложения из дерева функций. Мой CustomAction и бинарные теги выглядеть следующим образом:Последовательность пользовательских действий WIX
<CustomAction Id='NL220_Action' BinaryKey='NL220EXE' Return='asyncWait' />
<Binary Id="NICEXE" SourceFile="..\NL220.exe" />
<CustomAction Id='NIC_Action' BinaryKey='NICEXE' Return='asyncWait' />
<Binary Id="NICEXE" SourceFile="..\NIC.exe" />
Кроме того, мой InstallExecuteSequence тег выглядит следующим образом:
<InstallExecuteSequence>
<Custom Action="NL220_Action" After="InstallFinalize"><![CDATA[(&Optional_NL220=3)]]></Custom>
<Custom Action="NIC_Action" After="NL220_Action"><![CDATA[(&Optional_NIC=3)]]></Custom>
</InstallExecuteSequence>
Все работает отлично: пользователь может выбрать третий участник программы установки пакетов для запуска, и эти затем запускаются при завершении установки. Проблема заключается в том, что если пользователь выбирает оба сторонних установщика, они запускаются одновременно, игнорируя атрибут After = "NL220_Action" второго пользовательского действия. Есть идеи, почему это так?
Было моим пониманием, что атрибут return определяет взаимосвязь между основным потоком и пользовательскими потоками действий (таким образом, асинхронно запускается пользовательское действие с основным потоком). Я изменил возвращаемое значение на «проверку», и это работает, как и ожидалось, благодаря Майклу. – staterium