这是Wix Bootstrapper命令行中的Bug吗?

时间:2014-02-25 10:37:00

标签: c# wix bootstrapper burn

我已在此处发布了一个相关问题:Wix: Managed BA command line not effective,这是关于升级期间传递的命令行。

现在我尝试探索它如何解释命令行。这是我的run方法:

protected override void Run()
{
  string cmdOptions = string.Empty;
  this.Engine.Log(LogLevel.Verbose, "Launching custom TestBA UX");

  Debug.WriteLine("Command.Display: {0} Command.Action: {1}", this.Command.Display.ToString(), this.Command.Action.ToString());
  Environment.Exit(1);
}

据我所知,Wixdba会消化自己的命令行选项,并将额外的内容传递给我们的Managed Bootstrapper应用程序。从上面提到的帖子,这行来自日志:

[1A44:1E54][2014-02-24T17:47:22]i301: Applying execute package: {f1d57671-5e3d-4be7-908f-5a47e72737d9}, action: Uninstall, path: C:\ProgramData\Package Cache\{f1d57671-5e3d-4be7-908f-5a47e72737d9}\BootstrapperSetup.exe, arguments: '"C:\ProgramData\Package Cache\{f1d57671-5e3d-4be7-908f-5a47e72737d9}\BootstrapperSetup.exe" -uninstall -quiet -burn.related.upgrade'

显示它正在将-uninstall和-quiet传递给BootstrapperSetup.exe,它位于缓存中,即已经安装在那里。

以下是传递给Bootstrapper的命令行选项的结果:

  

C:\ bin \ Debug> BootstrapperSetup.exe -quite -uninstall

Command.Display:Full,Command.Action:Uninstall

  

C:\ bin \ Debug>> BootstrapperSetup.exe -q -uninstall

Command.Display:无Command.Action:卸载

  

C:\ bin \ Debug>> BootstrapperSetup.exe -q -u

Command.Display:无Command.Action:安装

摘要:从上面的测试中,似乎

  1. -quite无效,而-q则无效。
  2. -u无效,而-Uninstall则无效。
  3. 虽然在知道这个之后,我可以在我的Managed Bootstrapper中解析-quite和-u,但我想知道,如果它是一个Bug或者我在这里做错了什么

    祝你好运

1 个答案:

答案 0 :(得分:2)

这不是一个错误。你必须正确拼写,这不是'完全'。我相信命令行的意图是接受msiexec接受的内容。 msiexec不使用-u进行卸载(或者就我所知的任何事情而言),但是使用了-q。

不幸的是,关于此的文档并不是很好。你必须阅读WiX源代码以获得很多这样的东西。您将在src / burn / engine / core.cpp(ParseCommandLine方法)中找到引擎将为您解析的确切内容。