我正在使用WIX Installer,其中我有一个自定义操作,如下所示。
<CustomAction Id="ConfigureBiodentifyServer" FileKey="Biodentify.InstallUtil.exe" Execute="deferred" ExeCommand="/configurebiodentify /metadata="DefaultSetup.xml" /iskiosk="false"/databaseType="SQLServer" /sqlserver="[$(var.SqlServerName)]" /sqluser="" /sqlpw="" /domainName="[$(var.ComputerDomain)]" /domainPk="[$(var.DomainPk)]" " Impersonate="yes" Return="check" />
<InstallExecuteSequence><Custom Action="ConfigureBiodentifyServer" After="StartServices">NOT Installed And $(var.InstallType) = "SERVER" </Custom> </InstallExecuteSequence>
但是当我安装我的安装程序时,ExeCommand会出错?
答案 0 :(得分:1)
您应该考虑几种级别的重构。首先,您调用InstallUtil,这意味着您正在调用Installer类自定义操作。此自定义操作应重构为WiX部署工具基础(DTF)以利用更好的托管模式(例如,您可以获取/设置Windows Installer属性,而不是传递命令行参数)。
此外,WiX还有SQL扩展来处理SQL脚本,因此您可能会在这里重新发明轮子。