2013-07-06 44 views
0

我正在使用屬性來設置註冊表項的值。這樣安裝時第一次有一個默認值,然後在升級時使用當前的註冊表值。Wix工具集 - 將屬性設置爲用戶配置文件文件夾路徑和程序文件

我需要一個屬性,將路徑設置爲用戶的本地文件夾和程序文件夾。我知道下面的代碼是錯誤的,但我該怎麼做。我想至少我想做一個Type 51自定義操作,但不理解文檔。

我認爲有三個相關部分

<InstallExecuteSequence> 
    <Custom Action="SetUserFolder" Before="InstallInitialize"/> 
    <Custom Action="SetInstallFolder" Before="InstallInitialize"/> 
</InstallExecuteSequence> 

自定義操作

<CustomAction Id="SetUserFolder" Property="UserFolder" Value="[%USERPROFILE]" /> 
<CustomAction Id="SetInstallFolder" Property="P_InstallFolder" Value="[%PROGRAMFILES]" /> 

屬性。

<Property Id="P_MyAPPPATH" Value="[P_InstallFolder]MyApp\"> 
    <RegistrySearch Id="S_MyAppPath" Type="raw" Root="HKCU" Key="Software\MyApp\Settings" Name="MyAppPath"/> 
</Property> 
<Property Id="P_MyAPPDB" Value="[UserFolder]\MyApp\MyAppData\"> 
    <RegistrySearch Id="S_MyAPPDB" Type="raw" Root="HKCU" Key="Software\MyApp\Settings" Name="MyAppdb"/> 
</Property> 

回答

1

作爲使用您定義的屬性的替代方法,您可能可以使用某些內置屬性以獲得更好的效果。

而不是%USERPROFILE,考慮LocalAppDataFolder。當用戶在網絡域中的計算機之間漫遊時,這將避免在計算機之間複製數據。我猜你不需要,但是,如果你這樣做,使用AppDataFolder,並提防涉及的延遲。

而不是%PROGRAMFILES,請考慮ProgramFilesFolder。這似乎是你想要的。

+0

是的是我很樂意使用它們。問題是我如何將它們作爲Property屬性的默認屬性? – darbid

相關問題