我有一个bootstrapper设置,它接受this链接中提到的命令行参数,如下所述:
<Wix>
<Bundle>
<Variable Name="CommandLineArg" bal:Overridable="yes"/>
<Chain>
<MsiPackage>
<MsiProperty Name="CommandLineArg" Value="[CommandLineArg]"/>
</MsiPackage>
</Chain>
</Bundle>
</Wix>
我使用此命令行参数有条件地运行自定义操作。如果我通过命令行运行它,这工作正常,即如果我传递参数,惯例运行,如果没有,那么它不会运行。但我想要的是当用户通过UI启动它时,即通过双击包,用户显示EULA页面,如果用户接受它,则应运行所有自定义操作,包括具有基于的条件的操作。命令行参数。我如何确保这一点,因为现在发生的事情是,从命令行启动安装时不会运行定制。
欢迎任何建议。如果我的问题不明确,请告诉我。
答案 0 :(得分:0)
为变量添加默认值。
例如:
<Wix>
<Bundle>
<Variable Name="CommandLineArg" bal:Overridable="yes" Type="string" Value="hello"/>
<Chain>
<MsiPackage>
<MsiProperty Name="CommandLineArg" Value="[CommandLineArg]"/>
</MsiPackage>
</Chain>
</Bundle>
</Wix>
这样,即使用户双击安装程序,CommandLineArg也始终具有值。