在做了更多的挖掘之後,看起來我以前的經歷是VSDPROJ(也可能是InstallShield)特有的行爲的結果,因爲WiX符合Windows Installer。
正如我在this link,TARGETDIR
處發現的,實際上應該表示具有最大可用空間(假設有多個可用空間)的驅動器的根。這就是爲什麼WiX項目的目錄下嵌有Program Files等目錄.Visual Studio實際上添加了一個自定義操作,將該屬性覆蓋到完整的安裝路徑。
我能夠完成做兩件事情我想要的東西:
- 更改我的所有部件和部件組的安裝到
TARGETDIR
而不是INSTALLFOLDER
(即維克斯擺在那裏的默認目錄)
- 添加一個自定義操作,將
TARGETDIR
屬性的值設置爲安裝路徑,假設沒有從命令行傳入。
爲了做到這一點,我說這個<Product>
標籤下:
<CustomAction Id="SetTARGETDIR" Property="TARGETDIR"
Value="[ProgramFilesFolder][Manufacturer]\[ProductName]"
Execute="firstSequence" />
而且這個<InstallExecuteSequence>
標籤內:
<Custom Action="SetTARGETDIR" Before="CostFinalize">TARGETDIR=""</Custom>
http://stackoverflow.com/questions/15921078/ wix-toolset-create-directory -in-root -disk-system-disk-or -c-and-copy-files-i 這對我有效。使用「anotherlocation」 – WtFudgE