I accomplished the same thing as follows: <Directory Id="TARGETDIR" Name="SourceDir"> <?if $(var.Platform) = x86 ?> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLLOCATION" Name="."/> </Directory> <?else?> <Directory Id="ProgramFiles64Folder"> <Directory Id="INSTALLLOCATION" Name="."/> </Directory> <?endif?> </Directory>
<DirectoryRef Id="INSTALLLOCATION"> <Directory Id="$(var.Manufacturer)" Name="$(var.Manufacturer)"> <Directory Id="$(var.Product)" Name="$(var.Product)"> <!-- etc... --> </Directory> </Directory> </DirectoryRef> I use the Platform msbuild property set in *.wixproj to tell me whether I'm building for x86 or not. It would be simple to replace the <?if?> conditional to use something more appropriate to your build process. Best part of all, no CustomAction needed!! ;-D -- Edwin > -----Original Message----- > From: Christopher Karper [mailto:christopher.kar...@gmail.com] > Sent: Tuesday, January 27, 2009 6:06 PM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] platform agnostic file flag? > > OK, here's how I handle that. > > Your directory structure should look something like this: > > <Directory Id='TARGETDIR' Name='SourceDir'> > <Component Id='Dummy' Guid='' /> > </Directory> > > Then, you have a CA set the TARGETDIR property, giving the install > location. (This is covered in so many posts and replies, you should > have no > trouble finding this) > <InstallUISequence> > <Custom Action='DIRCA_TARGETDIR' > After='LaunchConditions'>TARGETDIR=""</Custom> > </InstallUISequence> > > Thenm instead of having one CA target, you have one for each build > architecture. > <?if $(sys.BUILDARCH) = 'x64'?> > <CustomAction Id='DIRCA_TARGETDIR' Property='TARGETDIR' > Value='[ProgramFiles64Folder][Manufacturer]\[ProductName]\' /> > <?else ?> > <CustomAction Id='DIRCA_TARGETDIR' Property='TARGETDIR' > Value='[ProgramFilesFolder][Manufacturer]\[ProductName]\' /> > <?endif ?> > > That's that! One stop shopping. > > On Tue, Jan 27, 2009 at 5:55 PM, Peter Oehlert < > poehl...@securityinnovation.com> wrote: > > > I'm actually already using a <?if > $(var.Platform)=x64?><?else?><?endif?> > > around the package element to make the MSI 64 or 32 bit. However my > files > > are placed in ProgramFilesFolder\{my folder}. My issue is that > > ProgramFilesFolder is resolving to the wrong place in x64. I assume I > can > > fix this if I use a <?if?> on each file element in each component and > > specify the platform as x64 or x86 appropriately and map it to the > *SAME* > > binary file. I can do this because my binaries are platform agnostic. > > > > I was hoping there was something easier however. > > > > > > --Peter > > > > -----Original Message----- > > From: Christopher Karper [mailto:christopher.kar...@gmail.com] > > Sent: Tuesday, January 27, 2009 1:03 PM > > To: General discussion for Windows Installer XML toolset. > > Subject: Re: [WiX-users] platform agnostic file flag? > > > > MSI requires that the installer be marked as 32-bit or 64-bit. I > just > > made one WXS file that will work for both, then I set my target > directory > > to > > the correct place for that platform. > > > > Chris > > > > On Tue, Jan 27, 2009 at 3:09 PM, Peter Oehlert < > > poehl...@securityinnovation.com> wrote: > > > > > I'm doing dual x64/x86 installers and my application is all based > on .net > > > (MSIL) and is hence platform agnostic. Is there a way to specify a > file > > as > > > platform agnostic in a component? Currently my x64 installer is > putting > > > everything in Program Files (x86) b/c I don't specify the Platform= > > > attribute of the File element. > > > > > > > > > > > > Certainly others have this issue, I mean a text file is hardly > platform > > > specific. > > > > > > > > > > > > Is this an MSI limitation? > > > > > > > > > > > > > > > > > > Any help would be appreciated. > > > > > > > > > > > > Thanks, > > > > > > Peter > > > > > > > > > > > > > --------------------------------------------------------------------- > ------- > > -- > > > This SF.net email is sponsored by: > > > SourcForge Community > > > SourceForge wants to tell your story. > > > http://p.sf.net/sfu/sf-spreadtheword > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > --------------------------------------------------------------------- > ------- > > -- > > This SF.net email is sponsored by: > > SourcForge Community > > SourceForge wants to tell your story. > > http://p.sf.net/sfu/sf-spreadtheword > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > --------------------------------------------------------------------- > --------- > > This SF.net email is sponsored by: > > SourcForge Community > > SourceForge wants to tell your story. > > http://p.sf.net/sfu/sf-spreadtheword > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ----------------------------------------------------------------------- > ------- > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users