识别安装了MSI的命令行

时间:2013-10-14 11:34:30

标签: windows-installer command-line-arguments

是否可以识别安装MSI的命令行?

例如,我在MSI安装命令行中传递了一些自定义属性。 msiexec / i msi1.msi CUSTOMPROPERTY1 =“救救我!”

过了一段时间,我想用msi2.msi更新msi1.msi,并希望将相同的自定义属性传递给msi2.msi安装命令行。

命令行是否存储在任何地方?

我看到的方法是在msi1.msi中创建一个reg键,它将存储CUSTOMPROPERTY1值并在msi2.msi中创建一个AppSearch条目来搜索这个reg条目。在我的情况下,我无法使用这种方法。这就是为其他人寻求的原因。

2 个答案:

答案 0 :(得分:1)

高级安装程序还可以帮助您使用Set persistent property选项。在更新时,您不需要调用或搜索这些属性,它们的自定义值将从注册表中自动获取。

干杯

答案 1 :(得分:0)

正确。 Windows Installer不会为后续事务保留属性,因此您必须自己执行此操作。这是一个讨论它的博客:

The WiX toolset's "Remember Property" pattern.

就个人而言,上述模式还远远不够。我所做的是我将注册表值读入第二个属性,然后使用一系列条件化自定义操作,只在适当时填充主值。目标是在以下最低顺序中强制执行属性优先级:

  1. 用户通过UI序列中的对话框上的自定义控件输入的值。
  2. 通过命令行传递给安装程序的值。
  3. 以前安装时保留的值。
  4. 烘焙到MSI中的默认值。