2014-10-02 40 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” 中的命令行。