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

Windows installer InstallShield 2010和基本MSI的动态属性值,windows-installer,installshield,Windows Installer,Installshield,在XML文件更改中,我想将节点内容设置为[MYPUBLICPROPERTY1],这样就可以通过命令行传入,例如msiexec/I my.msi MYPUBLICPROPERTY1=“Foo”。但是,如果没有通过命令行传入,我希望它是[INSTALLDIR]Sub\Path 有什么办法可以达到这个效果吗?看看这个答案是否澄清了与您的问题相关的一般问题: 至于你的要求。在CostFinalize(已解析目录)后使用自定义操作将MYPUBLICPROPERTY1设置为[INSTALLDIR]Sub\P

在XML文件更改中,我想将节点内容设置为
[MYPUBLICPROPERTY1]
,这样就可以通过命令行传入,例如
msiexec/I my.msi MYPUBLICPROPERTY1=“Foo”
。但是,如果没有通过命令行传入,我希望它是
[INSTALLDIR]Sub\Path


有什么办法可以达到这个效果吗?

看看这个答案是否澄清了与您的问题相关的一般问题:

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