我正在Bundle.wxs中将一个批处理文件链接为"ExecPackage"。批处理文件需要一个参数/命令行参数。
<ExePackage Id="Test" SourceFile="D:TestBatch.bat" Vital="yes" InstallCondition="SelectedDBSize = 24" InstallCommand=""/>
如何在"ExecPackage"中传递命令行参数/参数。InstallCommand属性可以用于此吗?如果是的话,有人能给我举一个小例子来说明这一点吗?
这是我目前用来安装SqlExpress 2008 R2的软件包的一部分:
<ExePackage Id="SqlExpress2008R2"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="no"
Vital="yes"
InstallCommand="/QS /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS /BROWSERSVCSTARTUPTYPE=Automatic /SQLSVCSTARTUPTYPE=Automatic /FEATURES=SQL /INSTANCENAME=[SqlInstance] /SQLSVCACCOUNT="NT AUTHORITYNetwork Service" /SQLSYSADMINACCOUNTS="BUILTINADMINISTRATORS" /AGTSVCACCOUNT="NT AUTHORITYNetwork Service" /SECURITYMODE=SQL /SAPWD="[SqlAdminUserPassword]""
Name="redistSQLEXPR_x86_ENU.exe"
DownloadUrl="http://download.microsoft.com/download/D/1/8/D1869DEC-2638-4854-81B7-0F37455F35EA/SQLEXPR_x86_ENU.exe"
InstallCondition="NOT SQLServer2008R2Installed AND NOT SQLServerInstalled">
<RemotePayload ProductName="SQL Server 2008 R2 Express SP1"
Description="SQL Server 2008 R2 Express SP1"
CertificatePublicKey="5C499B10F7EF186DC729991A262AB52066423909"
CertificateThumbprint="93859EBF98AFDEB488CCFA263899640E81BC49F1"
Hash="6F399D641F322A3E47E3DD605F2A2EDF21074375"
Size="111274848"
Version="10.50.2500.0" />
</ExePackage>
用方括号包围的InstallCommand
属性中的部分(例如[SqlInstance]
(由可以在命令行上提供给bundle exe的bundle变量提供:
<Variable Name="SqlInstance"
Value="SQLEXPRESS"
bal:Overridable="yes" />
注意重要的属性bal:Overridable="yes"
,这意味着它可以通过bundle命令行设置,如果没有它,它将只是一个内部变量(例如,通过注册表搜索设置(。