将 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 参数进行安装。
但是,有一个程序,即 Adobe iFilter,它是一个 .msi 文件,它有一个安装程序,由于某种原因,它不会使用参数 /quiet 进行安装,而只会使用 /passive 参数进行安装。问题是,尝试在 WIX 中使用 DisplayInternalUI="no" 安装文件不起作用,并且 .msi 文件没有 InstallCommand 参数,所以我无法静默安装程序。
是否有任何解决方案,例如通过 WIX 为 .msi 安装程序提供“/passive”参数的任何方法?我在文档中没有找到类似的内容。
提前致谢。
【问题讨论】:
这听起来可能是 Adobe MSI 文件的一个怪癖,因此您可以尝试在 Adobe 论坛中询问,以及查看 Adobe MSI 的 UI 序列以查找可能被抑制的自定义操作。您还应该说出“不起作用”的含义并查看详细日志。日志。一个常见问题是完全静默安装会抑制 UI,包括提升提示,因此需要提升的安装会静默失败。 【参考方案1】:关于 Adobe 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 工具集)的主要内容,如果未能解决你的问题,请参考以下文章
使用 WiX 将 NServiceBus.Host 安装为服务