Wix Burn 没有将命令行参数传递给相关软件包(同一安装程序的旧版本)

Posted

技术标签:

【中文标题】Wix Burn 没有将命令行参数传递给相关软件包(同一安装程序的旧版本)【英文标题】:Wix Burn didn't Pass command line args to related packages (old version of same installer) 【发布时间】:2014-05-28 07:07:47 【问题描述】:

最近我看到我的基于 Wix 的引导程序有一个烦人的行为。我们将命令行参数传递给我们的安装程序,例如

myinstaller.exe /S option=10

然后我在我的捆绑包中使用它

<Variable Name="option" Value="0" bal:Overridable="yes" />

然后我将它传递给相关的 msi 或 exe 包。一切正常,符合预期。

然后我注意到我们的应用出现了意外行为,并通过日志进行调查,发现 Wix 没有将此命令行参数或变量转发到相关包。

在同一台机器上,我使用命令行参数执行了较新版本的安装程序。 Wix 注意到旧版本,因此在安装新版本后将其删除,但没有将选项转发给该安装程序。安装程序使用这个参数来决定一些事情,它走错了路。详情见日志。

[349C:282C][2014-05-08T20:12:24]i001: Burn v3.7.1224.0, Windows v6.1 (Build 7601: Service Pack 1), path: G:\myinstaller.exe, cmdline: '/S option=-2'
[349C:282C][2014-05-08T20:12:24]i000: Initializing numeric variable 'option' to value '0'
.
.
.
.
[349C:282C][2014-05-08T20:12:28]i301: Applying execute package: 93df3160-1ac2-4e72-ad1b-9040001d9d58, action: Uninstall, path: C:\Users\Test\AppData\Local\Package Cache\93df3160-1ac2-4e72-ad1b-9040001d9d58\myinstaller.exe, arguments: '"C:\Users\Test\AppData\Local\Package Cache\93df3160-1ac2-4e72-ad1b-9040001d9d58\myinstaller.exe" -uninstall -quiet -burn.related.upgrade'

【问题讨论】:

【参考方案1】:

我在互联网上花了很多时间搜索任何解决方案,但我找不到任何解决方案。然后我通过设置注册表值解决了这个问题,这显然是解决方法,但我必须这样做。然后我查看了 wix 工具集错误列表,发现它被标记为针对 wix 4.x 的错误。这是进一步了解的链接。

http://wixtoolset.org/issues/3704/

【讨论】:

以上是关于Wix Burn 没有将命令行参数传递给相关软件包(同一安装程序的旧版本)的主要内容,如果未能解决你的问题,请参考以下文章

如何将命令行参数传递给 c 程序

有没有办法将命令行参数传递给自定义入口点(C / C ++)

将命令行参数传递给 python-behave

如何将命令行参数传递给 unix/linux 系统上正在运行的进程?

如何将命令行参数传递给 spark-shell scala 脚本?

Python2.7 - 将参数传递给命令行以根据参数过滤CSV