将 MsiPackage 安装为 /passive(WIX 工具集)

Posted

技术标签:

【中文标题】将 MsiPackage 安装为 /passive(WIX 工具集)【英文标题】:Install an MsiPackage as /passive (WIX Toolset) 【发布时间】:2016-06-26 11:47:16 【问题描述】:

在我们的引导程序 WIX 项目中,我们有很多先决条件,.MSI 和 .EXE 文件。其中大部分都可以使用 ExePackage 中的 InstallCommand 参数和 MsiPackage 中的 DisplayInternalUI 参数进行安装。

但是,有一个程序,即 Adob​​e iFilter,它是一个 .msi 文件,它有一个安装程序,由于某种原因,它不会使用参数 /quiet 进行安装,而只会使用 /passive 参数进行安装。问题是,尝试在 WIX 中使用 DisplayInternalUI="no" 安装文件不起作用,并且 .msi 文件没有 InstallCommand 参数,所以我无法静默安装程序。

是否有任何解决方案,例如通过 WIX 为 .msi 安装程序提供“/passive”参数的任何方法?我在文档中没有找到类似的内容。

提前致谢。

【问题讨论】:

这听起来可能是 Adob​​e MSI 文件的一个怪癖,因此您可以尝试在 Adob​​e 论坛中询问,以及查看 Adob​​e MSI 的 UI 序列以查找可能被抑制的自定义操作。您还应该说出“不起作用”的含义并查看详细日志。日志。一个常见问题是完全静默安装会抑制 UI,包括提升提示,因此需要提升的安装会静默失败。 【参考方案1】:

关于 Adob​​e iFilter 本身,有趣的是,使用 /quiet 会安装 iFilter 应用程序,但不会设置指向程序和功能的链接,因此您不会在那里看到它,也不会看到它作为已安装的应用程序。但是,您仍然可以在其默认安装目录中找到安装文件。

在安装一般安静或被动的东西时,我没有找到任何允许这样做的东西,但是可以使用

设置正常的 Windows 安装程序属性
<MsiProperty Name="PropertyName" Value"PropertyValue"/>

MsiPackage 中的标记。 请参阅此处的文档:http://wixtoolset.org/documentation/manual/v3/xsd/wix/msiproperty.html

这包括在每个 Windows 安装程序中都可以找到的“UILevel”属性。 请参阅此处的文档: https://msdn.microsoft.com/en-us/library/windows/desktop/aa372096(v=vs.85).aspx

这样,您可以将安装程序设置为降低的 UI 级别,我认为这与使用 /passive 调用它相同。

【讨论】:

以上是关于将 MsiPackage 安装为 /passive(WIX 工具集)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 keycloak 安装为服务,使其自动启动?

使用 WiX 将 NServiceBus.Host 安装为服务

composer 使用组件安装程序将 jquery 插件安装为组件

不要将 gradle 子项目安装为外部依赖项

如何使用NSIS脚本将应用程序安装为Windows服务

将MongoDB安装为Windows服务---安装MongoDB服务