【问题标题】:How to use command line parameters in an MSI如何在 MSI 中使用命令行参数
【发布时间】:2020-02-09 04:22:09
【问题描述】:

我们有一个程序,它有一个 MSI 来安装它。是否可以从命令行传入参数并让它们填充需要用户填写的字段?

目前我们有一个 MSI 要求提供某些数据并且必须手动填写。我们现在正尝试从命令行自动化大部分操作。我们找到了内部字段名称(键),我们可以从命令行传递它们,但是,日志显示这些值在中途被删除并且它们最终变为空白。我怀疑这些字段没有被传入的数据填充,这些字段最终是空白的,并且数据被删除了。只有安装程序的目录不会被删除。

我在 Visual Studio 中找到了这些字段(右键单击设置项目 > 查看 > 用户界面),但看起来这些值仅采用静态数据。有没有办法让他们从命令行获取参数?

【问题讨论】:

  • 现在只有一些链接的时间:Customizing an MSICustomizing an MSI - in detail。本质上,只能在命令行上设置大写属性并传递给延迟执行(实际安装)。有许多复杂性,尤其是在处理对话时。只有安装程序放在那里的属性值可以通过命令行设置 - 显然 - 除非一些内置属性:REINSTALLMODE、REINSTALL、ALLUSERS 等......

标签: visual-studio-2015 windows-installer


【解决方案1】:

看看WiX condition properties passed from command line don't work?

属性必须使用 UPPERCASE 字母,例如 <Property Id="INSTALLSTARTMENUSHORTCUT" Value="0"/>

然后使用 MSIEXEC,如msiexec /i MySetup.msi INSTALLSTARTUPSHORTCUT=0 从命令行设置属性

【讨论】:

  • 我想我本来可以更清楚,但我们传递的是大写参数,这些参数确实会显示在日志中,然后删除并使用空白值。我怀疑安装程序中有表单字段时会发生删除。除了目标目录之外,它们似乎没有从命令行填充。
猜你喜欢
  • 2011-06-03
  • 2013-01-13
  • 2018-10-08
  • 2021-08-21
  • 2012-11-30
  • 2013-03-04
  • 1970-01-01
  • 2014-08-03
  • 2011-04-01
相关资源
最近更新 更多