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