2012-09-06 90 views
2

我爲我的安裝項目使用WIX 3.5。如果在安裝過程中更改安裝目錄,安裝程序會堅持使用默認目錄。WIX安裝目錄不可定製?

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="LocalAppDataFolder" Name="AppData"> 
    <Directory Id="InstallationDir" Name="MyApp" /> 
    </Directory> 
</Directory> 
... 
<DirectoryRef Id="InstallationDir"> 
    ... component + files ... 
</DirectoryRef> 
... 
<UI> 
    <Property Id="WIXUI_INSTALLDIR" Value="InstallationDir" /> 
    <UIRef Id="WixUI_InstallDir" /> 
    <UIRef Id="WixUI_ErrorProgressText" /> 
</UI> 

<CustomAction Id="SetARPINSTALLLOCATION" Property="ARPINSTALLLOCATION" Value="InstallationDir" /> 
<InstallExecuteSequence> 
    <Custom Action="SetARPINSTALLLOCATION" After="InstallValidate" /> 
</InstallExecuteSequence> 

我試過升級(我總是改變產品代碼)並卸載/安裝。同樣的問題! 如果我運行msiexec /L*v log.txt /i Setup.msi日誌告訴我InstallationDir屬性確實發生了變化。

問:我的軟件如何安裝到默認目錄中?

回答

2

您必須對目錄使用全大寫名稱進行自定義。大寫字母是MSI如何聲明目錄(和屬性)爲PUBLIC並因此可自定義。

+0

是的,當然...:P非常感謝! – l33t

0

感謝您的解決方案。我找不到爲什麼我的安裝程序沒有將文件複製到正確的用戶指定的目錄,直到我找到這篇文章。

我只想強調,如果安裝程序將文件複製到INSTALLDIR下的子目錄中,那麼它們的ID不能全部爲大寫,或者當用戶通過自定義安裝對話框更改INSTALDIR時,它們不會被更改。您可以驗證通過使用

msiexec /i your_installer.msi /l*v log.log 

並且您可以看到任何具有全部大寫Ids的目錄將只設置一次。