2014-03-13 72 views
1

我正在使用WIX編寫安裝腳本,並且出現了與用戶選擇的安裝位置有關的問題。需要安裝的程序需要安裝在根驅動器C:/,D:/,ext中才能使程序正常工作。使用Wix UI包WIXUI_INSTALLDIR,用戶可以更改程序的安裝路徑,我想要做的就是讓用戶無法更改除根驅動器之外的任何內容,即更改D:\ usr \ sparrow \ bin - - > C:\ usr \ sparrow bin如果他們需要的話。有沒有人有任何建議可以實現這個目標?如何限制WIX中的UI安裝路徑?

回答

0

您可以使用自定義操作和自定義對話框來做到這一點,但我不會這樣做。這是很多工作,似乎沒有任何主要的好處。

如果我是你,我會刪除完全安裝到自定義位置的機會。但是,如果安裝程序是通過命令行運行的,則無論如何您都無法控制它們爲TARGETDIR/INSTALLDIR指定的路徑,除非添加自定義操作檢查以在不允許路徑時中止安裝程序:

msiexec /i setup.msi TARGETDIR=c:\anypathcanbewrittenhere 
+0

是的,我最初使用的是WIXUI_minimal,以防止用戶在根驅動器以外的任何位置安裝程序,但是如果您需要使用自定義操作來完成此操作,您會怎麼做? –

+0

目錄在FileCosting或其附近得到解決。我會編寫一個自定義操作並在InstallInitialize之前插入它。這應該檢查INSTALLDIR/TARGETDIR,如果不合適則拒絕它。然後用信息寫入安裝程序日誌。剛纔我手邊沒有樣品。 –