2014-10-02 63 views
0

我想從引導程序傳遞一些參數給MSI。因爲我需要MSI能夠顯示UI,但在基本變量(/ qb)中。目前,我正在做的方式如下:將參數傳遞給沒有msiexec的msi。

<ExePackage Id="Drv" DisplayName="Drv" SourceFile="..\redist\msiexec.exe" InstallCommand="/i setup.msi /qb> 
    <Payload SourceFile="setup.msi"/> 
</ExePackage> 

但我希望不要採取MSIEXEC內引導程序和做這樣的事情:

<MsiPackage Id="Drv" SourceFile="setup.msi" DisplayInternalUI="yes"> 
    <MsiProperty Name="CommandLineArg" Value="/qb"/> 
</MsiPackage> 

是否有可能將參數傳遞到沒有msiexec.exe的msi?

謝謝

+0

你想解決什麼問題?顯示UI與傳遞參數無關,所以也許你對這些工作的方式有一個不正確的假設?即使是靜默安裝,您仍然可以在命令行上傳遞屬性。 – PhilDW 2014-10-02 19:33:38

+0

感謝您的評論。 問題是,當我使用將DisplayInternalUI設置爲「是」時,我得到完整的UI。雖然我需要基本的用戶界面,就像我從命令行運行「setup.msi/qb」或「msiexec.exe/i setup.msi/qb」一樣。所以問題是,如果可以將「/ qb」參數傳遞給? – bilboquet 2014-10-03 10:13:34

+0

如果您擁有MSI並且完全不需要完整的用戶界面,那麼您可以使用更接近/ qb的最小UI。 – 2014-10-03 18:35:31

回答

0

我發現了以下解決方案。 我用Orca打開了setup.msi。加入兩個屬性LIMITUI和ARPNOMODIFY,並將它們設置爲1(http://msdn.microsoft.com/en-us/library/aa369759%28v=vs.85%29.aspxhttp://fdo-workspace.blogspot.ru/2009/10/use-orca-modify-msi-add-mst-and.html

在Bundle.wxs我有:

<MsiPackage Id="Drv" SourceFile="setup.msi" DisplayInternalUI="yes" SuppressSignatureVerification="yes"/> 

設置LIMITUI 1類同 「/ QB」 中的命令行。