2011-09-13 52 views
2

在我的WIX安裝項目中,我正在讀取INI文件中的一些屬性。WIX:在安裝時重寫IniFileSearch,如果MSI具有命令行參數

如果任何屬性值作爲命令行參數傳遞,是否有方法在安裝過程中重寫IniFileSearch。 (我試圖做到這一點,使之與靜默安裝工程,以及。)

代碼段:

<Property Id="WEBDIR" > 
    <IniFileSearch Id="WebsitesDirIni" Name="Setup.ini" Section="InstallLocations" Key="WebsitesDir" Type="raw"/> 
</Property> 

我想的是,如果我是執行MSI如下圖所示,它接受由命令行param給出的值,而不是在ini文件中查找值。

msiexec /i install.msi WEBDIR=C:\MyOverriddenPath 

回答

1

INI文件搜索只能在Windows目錄中搜索。因此,對於您的場景,您可以嘗試使用此線程中提到的自定義操作: Get INI file value with WiX

這樣,您可以簡單地使用從命令行設置的屬性來調節自定義操作。

1

您的示例將設置WEBDIR爲命令行值,然後用ini文件值替換

通過使用不同的命令行屬性名稱並將WEBDIR設置爲該值(如果已定義),可以實現所需的結果。即

<SetProperty Id="WEBDIR" After="AppSearch" Value="[DIR]"> 
     DIR 
    </SetProperty> 

請注意,這是對現有代碼的補充。然後您可以撥打電話:

msiexec /i install.msi DIR=C:\MyOverriddenPath 

這將覆蓋ini文件中定義的WEBDIR屬性。