我試圖建立一個與INSTALLDIR目錄下的一個適當的名稱創建一個目錄多實例安裝:SetDirectory與目錄屬性
<Directory Id="INSTALLDIR" Name="My Product">
<Directory Id="SERVERDIR" Name="Server" />
</Directory>
<SetDirectory Id="SERVERDIR" Value="[INSTALLDIR]Server ([INSTANCEID])">NOT (INSTANCEID="DEFAULT")</SetDirectory>
我想至少希望INSTALLDIR屬性會已經在InstallExecute序列開始時傳入,即使大多數其他目錄尚未由CostFinalize解析。有沒有辦法在CostFinalize之前找到用戶指定的安裝目錄,以便我可以正確設置SERVERDIR路徑?
更新1:我猜在大多數情況下INSTALLDIR本身得到由CostFinalize,除非它的命令行(所以爲什麼它是空白給我)的設置解決。除非已由用戶設置,否則我可以擁有自己的屬性,該屬性默認爲我希望INSTALLDIR所在的位置。需要弄清楚UI如何傳遞它 - 希望它正常地傳遞INSTALLDIR。
更新2:UI通過INSTALLDIR。但它也傳遞所有其他解析的目錄,包括SERVERDIR下的目錄。我需要在兩個序列中運行SetDirectory動作,並自己提供一個默認的INSTALLDIR屬性。我也應該給自己買一個rubber duck。