在WiX中执行任意C#代码

时间:2011-07-27 12:36:35

标签: c# installer wix

我想在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 个答案:

答案 0 :(得分:1)

InstallExecuteSequence表列出了执行顶级INSTALL操作时执行的操作。尝试在InstallUISequence上使用LaunchConditions

答案 1 :(得分:0)

<InstallUISequence>
  <Custom Action="Your_Custom_Action"
          After="CostFinalize"
          Overridable="yes">NOT Installed</Custom>
</InstallUISequence>

此代码在安装开始时启动“您的自定义操作”。