WIX需要从CustomAction中的二进制文件中提取文件(XML)

时间:2012-06-13 12:41:16

标签: wix custom-action

我正在使用WIX实现... 我需要在CustomAction中执行一个EXE,我可以通过在Binary中添加EXE并在安装之前调用它来完成它。 但是这个EXE需要一个XML文件来读取当前目录中应该存在的数据。为此,我能够像在EXE中那样在二进制文件中插入XML。

现在我需要在二进制文件EXE之前提取XML文件。无法弄清楚我需要提取它的CustomAction。

以下是我所做的事情:

  • 将XML添加到二进制文件

<Binary Id="TestXML.xml" SourceFile="d:\csu\TestXML.xml"/>

  • CustomAction(我试过 - 问号“???”要放什么)

<CustomAction Id="SetBinaryWrite_TargetFileName_1" BinaryKey="TestXML.xml" ExeCommand="???" Execute="immediate" Return="ignore" />

  • 在&lt; InstallExecuteSequence&gt;
  • 中执行

<Custom Action="SetBinaryWrite_TargetFileName_1" After="ValidateProductID"/>

需要帮助!!

1 个答案:

答案 0 :(得分:1)

没有内置支持。

从二进制表启动EXE是本机Windows Installer自定义操作。如果您只想从二进制表中提取文件,则需要使用自定义代码编写自己的自定义操作。

您可以尝试使用接收安装句柄的win32 DLL并使用Windows Installer API解压缩文件。