我有一个msi(用WIX编写),它有一个绑定到自定义属性的复选框(称之为MY_PROPERTY).我想从命令行运行此msi,为此属性指定0(未选中)或1(已选中).我的脚本将确定适当的值(基于环境)并将该值注入msiexec命令行.我的命令行看起来像这样:
msiexec /i my_installer.msi MY_PROPERTY=$value
Run Code Online (Sandbox Code Playgroud)
其中$ value为1或0,具体取决于环境.问题是,无论我在命令行为MY_PROPERTY提供什么值,都会选中复选框(并且该属性将始终设置为1).取消选中复选框的唯一方法是不指定属性(保留未定义).应该注意,无论UI是否显示,都会出现这种情况(在上面的命令行中添加"/ quiet"不会改变这种行为).
这个msdn帖子似乎表明这是Windows安装程序中已知的"错误"(或者更确切地说,无论创作系统编写的是msi).建议使用post-build msi hack作为解决方案.我想知道是否有人遇到过这个问题并提出了更好的解决方法/解决方案.谢谢!
我看到这个问题的三个解决方案:
我目前倾向于选项3,虽然选项1可能是我原来问题的最佳答案.有什么想法吗?