【问题标题】:Passing parameters to msi without msiexec.在没有 msiexec 的情况下将参数传递给 msi。
【发布时间】:2014-10-02 17:09:15
【问题描述】:

我正在尝试将一些参数从引导程序传递给 MSI。因为我需要 MSI 能够显示 UI,但在基本变体 (/qb) 中。目前我正在这样做:

<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?

谢谢

【问题讨论】:

  • 您要解决什么问题?显示 UI 与传递参数无关,所以您可能对其中一些工作方式有错误的假设?即使是静默安装,您仍然可以在命令行上传递属性。
  • 感谢您的评论。问题是,当我使用 并将 DisplayInternalUI 设置为“是”时,我得到了完整的 UI。虽然我需要基本的 UI,就像我从命令行运行“setup.msi /qb”或“msiexec.exe /i setup.msi /qb”一样。所以问题是,是否可以将该“/qb”参数传递给
  • 如果您拥有 MSI 并且根本不需要完整的 UI,您可以使用更接近 /qb 的最小 UI。
  • 那么,“做这样的事情”有什么问题?你在使用 wix >=3.7 吗?
  • @TomBlodget 就我而言,如果 ShowInternalUI 设置为“no”,则不会显示 UI,否则如果设置为“yes”,则会显示完整的 UI。

标签: wix windows-installer bootstrapper


【解决方案1】:

我找到了以下解决方案。 我用 Orca 打开了 setup.msi。添加了两个属性 LIMITUI 和 ARPNOMODIFY 并将它们设置为 1 (http://msdn.microsoft.com/en-us/library/aa369759%28v=vs.85%29.aspx , http://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”。

【讨论】:

    猜你喜欢
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 2013-01-18
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多