2013-02-26 23 views
3

我將Bundle.wxs中的批處理文件作爲「ExecPackage」鏈接。批處理文件需要參數/命令行參數。如何將參數傳遞給WiX的Bundle.wxs中的ExecPackage

<ExePackage Id="Test" SourceFile="D:\TestBatch.bat" Vital="yes" InstallCondition="SelectedDBSize = 24" InstallCommand=""/> 

如何在「ExecPackage」中傳遞命令行參數/參數。 InstallCommand屬性可以用於這個嗎?如果有的話,有人能給我一個小例子來說明這一點嗎?

回答

3

這是目前我用來安裝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=&quot;NT AUTHORITY\Network Service&quot; /SQLSYSADMINACCOUNTS=&quot;BUILTIN\ADMINISTRATORS&quot; /AGTSVCACCOUNT=&quot;NT AUTHORITY\Network Service&quot; /SECURITYMODE=SQL /SAPWD=&quot;[SqlAdminUserPassword]&quot;" 
      Name="redist\SQLEXPR_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])由包變量提供的部分是可以被提供給在命令行束的exe:

<Variable Name="SqlInstance" 
      Value="SQLEXPRESS" 
      bal:Overridable="yes" /> 

注意的重要屬性bal:Overridable="yes"這意味着它可以通過束命令行進行設置,沒有它它將是一個內部變量(例如通過註冊表搜索設置)。

+0

謝謝你,這對我有用:) – microsoftprogrammer 2013-03-01 05:10:50