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

Reply via email to