Edit: there was a mistake in the RegistrySearch condition, here is the
correct one:

<util:RegistrySearch Id="RegistrySearch64" Root="HKLM"
Key="SOFTWARE\Microsoft\Windows\CurrentVersion" Value="ProgramFilesDir
(x86)" Variable="PlatformProgramFilesFolder"/>
<util:RegistrySearch Id="RegistrySearch32" After="RegistrySearch64"
Condition="Not PlatformProgramFilesFolder" Root="HKLM"
Key="SOFTWARE\Microsoft\Windows\CurrentVersion" Value="ProgramFilesDir"
Variable="PlatformProgramFilesFolder"/>

Also, SetProperty must come before CostFinalize:

<SetProperty Id="ProgramFilesFolder"
Value="[INSTALLFOLDER]\$(env.BG_WIX_PRODUCT_NAME)"
Before="CostFinalize">INSTALLFOLDER</SetProperty>

On Wed, Dec 28, 2011 at 2:44 PM, Peter Bulyaki <peter.buly...@gmail.com>wrote:

> Hi,
>
> Here is the bug:
> http://sourceforge.net/tracker/?func=detail&atid=642714&aid=3419080&group_id=105970
>
> The above bug was causing me lots of headaches - this bug is still not
> fixed in the last 3.6 beta, and I can't spend time on building WiX from
> source. Without this fix I can't use the Options button to set the
> installlocation, because the textbox can't be filled in with the proper
> default value. (BTW, this bug also happens on Windows Server 2003, not just
> XP.)
>
> Until a new release I have to use a workaround: I do util:RegistrySearch
> in my Bundle to find out the location of the 32bit ProgramFilesFolder.
> ------
> <util:RegistrySearch Id="RegistrySearch64" Root="HKLM"
> Key="SOFTWARE\Microsoft\Windows\CurrentVersion" Value="ProgramFilesDir
> (x86)" Variable="PlatformProgramFilesFolder"/>
> <util:RegistrySearch Id="RegistrySearch32" After="RegistrySearch64"
> Condition="Not ProgramFilesFolderOn64BitOS" Root="HKLM"
> Key="SOFTWARE\Microsoft\Windows\CurrentVersion" Value="ProgramFilesDir"
> Variable="PlatformProgramFilesFolder"/>
>
> <Variable Name='InstallFolder' Type="string"
> Value='[PlatformProgramFilesFolder]\$(env.MANUFACTURER_NAME)'></Variable>
> -------
> Then I add an MsiProperty element as a child of MsiPackage:
> <MsiProperty Name='InstallFolder' Value='[InstallFolder]' />
>
> In the individual MSI installers I conditionally set ProgramFilesFolder
> depending on whether InstallFolder was set (N.B. the property name here
> changes to all capitals) :
>
> <SetProperty Id="ProgramFilesFolder"
> Value="[INSTALLFOLDER]\$(env.MY_PRODUCT_NAME)"
> Before="CostFinalize">INSTALLFOLDER</SetProperty>
>
> Peter
>
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to