HOWTO 在 WIX 上使用 silent/unattended msi 安装程序默认配置一些设置

HOWTO configure some settings by default using a silent/unattended msi installer on WIX

我有一个使用 wixtoolset 创建的 msi 安装程序。

现在我要做的是在我启动 msi 安装程序时通过向它传递一些参数来配置我的应用程序的一些设置,这样我的应用程序将默认安装这些设置。通过这种方式,我可以将具有 a、b、c 功能的应用程序部署到一个用户,并将具有 d、e、f 功能的其他一些应用程序部署到另一个用户。

我需要 distribute/roll 将我的应用程序输出到多台计算机,因此我需要在没有用户干预的情况下进行 silent/unattended 安装。

我听说在 silent/unattended 安装中无法将参数(自定义操作)传递给 msi 安装程序,我该如何实现?

这是一个非常宽泛的问题。您的标题说的是设置,但您的问题提到的是功能。 Windows 安装程序有一个名为 ADDLOCAL 的 属性,可用于设置要安装的功能。

msiexec /i foo.msi ADDLOCAL=ALL /qn <- 静默安装所有功能

msiexec /i foo.msi ADDLOCAL=A,B,C /qn <- 静默安装功能 A B C

这是唯一的方法。有所有 INSTALLLEVEL 属性 和功能条件。此外,如果您的谈话设置通常谈论安全自定义 public 属性,例如

然后可能在注册表值中使用 [SERVERNAME] 用 SERVERNAME 的值填充注册表值。

msiexec /i foo.msi ADDLOCAL=A,B,C SERVERNAME=myserver /qn

还要注意维护模式(更改),可以添加和删除功能

msiexec /i foo.mai ADDLOCAL=A,B,C REMOVE=D,E,F /qn

最后请注意,MSI 不会保留属性(如 SERVERNAME),因此如果您使用一个值进行安装并进行修复,它可能会被取消。对于此 google Wix,请记住 属性 模式以获取有关如何使用注册表搜索从注册表中取回 属性 的示例。