2014-09-05 62 views
1

在XML文件更改中,我想将节点内容设置为[MYPUBLICPROPERTY1],以便可以通过命令行将其传入。 msiexec /i my.msi MYPUBLICPROPERTY1="Foo"。但是,如果它没有通过命令行传入,我希望它是[INSTALLDIR]Sub\Path使用InstallShield 2010和基本MSI的动态属性值

任何想法来实现这个结果?

回答

1

看看这个答案澄清您问题相关的一般的东西:How can I have a WiX Property default to null?

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