2014-09-05 61 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是否會自動將它添加到屬性表中。如果是這樣,掃描以查看它是否被命令行覆蓋(在屬性表中添加默認的虛擬值),如果沒有,則將其設置爲您需要的目錄。如果這不可行,請中止安裝。