Выполнение произвольного кода C # в WiX - PullRequest
1 голос
/ 27 июля 2011

Я хочу запустить произвольный код в установщике WiX и получить результаты этого как можно раньше.

Чтобы проверить это, я использую возвращаемое значение для установки поля метки. Это не похоже на работу. Я могу заставить его работать, когда я ставлю

<Publish Event="DoAction" Value="CustomAction1">1</Publish>

внутри элемента управления для следующей кнопки, но это слишком поздно. Я хочу, чтобы этот код выполнялся прямо в начале.

Вот что я попробовал:

<Binary Id="WixCustomActions" SourceFile="$(var.SolutionDir)$(var.CAProjectName)\bin\Release\$(var.CAProjectName).CA.dll" />

<CustomAction Id="CustomAction1" BinaryKey="WixCustomActions" DllEntry="CustomAction1" Execute="deferred" Return="asyncWait"/> (tried many combinations here)`

Позже .....

<InstallExecuteSequence>
    <Custom Action="CustomAction1" After="InstallInitialize">1</Custom>
</InstallExecuteSequence>

на бумаге это должно сработать.

Я знаю, что это не проблема с самим настраиваемым действием, потому что при наведении на следующую клавишу я получаю желаемый результат.

Какое решение?

Ответы [ 2 ]

1 голос
/ 27 июля 2011

В таблице InstallExecuteSequence перечислены действия, которые выполняются при выполнении действия INSTALL верхнего уровня. Попробуйте использовать LaunchConditions для InstallUISequence

0 голосов
/ 08 ноября 2013
<InstallUISequence>
  <Custom Action="Your_Custom_Action"
          After="CostFinalize"
          Overridable="yes">NOT Installed</Custom>
</InstallUISequence>

Этот код запускает Your_Custom_Action в самом начале установки.

...