InstallShield 2010和基本MSI的动态属性值



在XML文件更改中,我想将节点内容设置为[MYPUBLICPROPERTY1],以便可以通过命令行(例如msiexec /i my.msi MYPUBLICPROPERTY1="Foo")传入。但是,如果它不是通过命令行传入的,我希望它是[INSTALLDIR]SubPath

有什么想法可以达到这个结果吗?

看看这个答案是否澄清了与您的问题相关的一般问题:如何将WiX属性默认为null?

至于你的要求。在CostFinalize(已解析目录)之后使用自定义操作将MYPUBLICPROPERTY1设置为[INSTALLDIR]Sub\Path。如果属性已经由命令行设置,则在自定义操作中包含逻辑以不覆盖该属性(只需读取该属性并检查它是否为空)将属性排除在"属性"表之外。我不确定如果您在XML文件更改中使用Installshield,它是否会自动添加到属性表中。如果是,请扫描以查看它是否已被命令行覆盖(在属性表中添加默认的伪值),如果没有,请将其设置为需要的目录。如果不可能,请中止安装。

最新更新