如何在WIX自定义操作中传递命令行参数

时间:2014-03-03 11:17:30

标签: wix installer custom-action

我正在使用WIX Installer,其中我有一个自定义操作,如下所示。

 <CustomAction Id="ConfigureBiodentifyServer" FileKey="Biodentify.InstallUtil.exe" Execute="deferred" ExeCommand="/configurebiodentify /metadata=&quot;DefaultSetup.xml&quot; /iskiosk=&quot;false&quot;/databaseType=&quot;SQLServer&quot; /sqlserver=&quot;[$(var.SqlServerName)]&quot; /sqluser=&quot;&quot; /sqlpw=&quot;&quot; /domainName=&quot;[$(var.ComputerDomain)]&quot; /domainPk=&quot;[$(var.DomainPk)]&quot; " Impersonate="yes"  Return="check" />


<InstallExecuteSequence><Custom Action="ConfigureBiodentifyServer" After="StartServices">NOT Installed And $(var.InstallType) = "SERVER" </Custom>  </InstallExecuteSequence>

但是当我安装我的安装程序时,ExeCommand会出错?

1 个答案:

答案 0 :(得分:1)

您应该考虑几种级别的重构。首先,您调用InstallUtil,这意味着您正在调用Installer类自定义操作。此自定义操作应重构为WiX部署工具基础(DTF)以利用更好的托管模式(例如,您可以获取/设置Windows Installer属性,而不是传递命令行参数)。

此外,WiX还有SQL扩展来处理SQL脚本,因此您可能会在这里重新发明轮子。