I have a single MSI project, which get built twice to produce a x86 package
and a x64 package (with different names).

"
In the msi project I have something like this:
  <?if $(var.Platform) = x64 ?>
  <?define RmProgramFiles6432Folder = "ProgramFiles64Folder" ?>
  <?define INSTALLFOLDER6432PropertyRegRoot = "SOFTWARE\Company" ?>
  <?else ?>
  <?define RmProgramFiles6432Folder = "ProgramFilesFolder" ?>
  <?define INSTALLFOLDER6432PropertyRegRoot =
"SOFTWARE\Wow6432Node\Company" ?>
  <?endif ?>

The project has the full CP210x file tree.
<!-- Since -arch flag is passed to compiler by using    
<InstallerPlatform>x64</InstallerPlatform>
 in the wixproj, do not set Win64 flag on any Component.  Otherwise if not
using the -arch flag,
  since driver file tree must be preserved, either set on all components, or
none, based on the bitness of the package.-->

 <!-- Source attriutes are relative to the Light (linker) option -b
"$(ThirdPartyBiaRoot)\SiliconLabs\CP210x_VCP_Win_XP-8p1_6p7\\" -->
  &lt;!-- <ComponentGroup Id="CP210x_setup"> -->
  <Fragment>
    <ComponentGroup Id="CP210x_setup" Directory="CP210xDir" >
      <Component>
        <File Id="slabvcp.inf" KeyPath="yes" Source="slabvcp.inf" />
        <difx:Driver PlugAndPlayPrompt="no" />
      </Component>
      <Component>
        <File KeyPath="yes" Source="slabvcp.cat" />
      </Component>
      &lt;!-- The File Table Language Column is too long and causes a String
overflow ICE03 warning
      While we do not need these files to deploy using difx, redistrib to
comply with SiLabs license.
      NOTE  NOTE  NOTE SUPPRESSED ICE03 warnings-->
      <Component>
        <File KeyPath="yes" Source="CP210xVCPInstaller_x64.exe" />
      </Component>
      <Component>
        <File KeyPath="yes" Source="CP210xVCPInstaller_x86.exe" />
      </Component>
      <Component>
        <File KeyPath="yes" Source="dpinst.xml" />
      </Component>

      <Component>
        <File KeyPath="yes" Source="ReleaseNotes.txt" />
      </Component>
      <Component>
        <File KeyPath="yes" Source="SLAB_License_Agreement_VCP_Windows.txt"
/>
      </Component>
    </ComponentGroup>
  </Fragment>

  &lt;!-- <ComponentGroup Id="CP210x_x64"> -->
  <Fragment>
    <ComponentGroup Id="CP210x_x64" Directory="CP210x.x64Dir" >
      <Component >
        <File KeyPath="yes" Source="x64\silabenm.sys" />
      </Component>
      <Component >
        <File KeyPath="yes" Source="x64\silabser.sys" />
      </Component>
      <Component >
        <File KeyPath="yes" Source="x64\WdfCoInstaller01009.dll" />
      </Component>
    </ComponentGroup>
  </Fragment>

  &lt;!-- <ComponentGroup Id="CP210x_x86"> -->
  <Fragment>
    <ComponentGroup Id="CP210x_x86" Directory="CP210x.x86Dir">
      &lt;!-- Where possible let Wix Toolset generate Ids, but since file
names are same as above, set explicid IDs-->
      <Component >
        <File Id="x64.silabenm.sys" KeyPath="yes" Source="x64\silabenm.sys"
/>
      </Component>
      <Component >
        <File Id="x64.silabser.sys" KeyPath="yes" Source="x64\silabser.sys"
/>
      </Component>
      <Component >
        <File Id="x64.WdfCoInstaller01009.dll" KeyPath="yes"
Source="x64\WdfCoInstaller01009.dll" />
      </Component>
    </ComponentGroup>
  </Fragment>
"
As noted above in the wixproj, in each platform specific property group, I
set unique OutputName, OutputPath, ...InstallerPlatform, and I do not use
the Win64 component flag.
    <OutputName>CP210x_x64</OutputName>
    <OutputPath>bin\$(Configuration)\$(Platform)\</OutputPath>
   
<IntermediateOutputPath>obj\$(Configuration)\$(Platform)</IntermediateOutputPath>
    <InstallerPlatform>x64</InstallerPlatform>

The reference to difxapp is like this:
  <ItemGroup>
    &lt;!-- NOTE VS IDE shows a yellow missing reference symbol, but the
following is correct.  Manually edit, like other driver projects to get
platform specfic DLL.-->
    <WixLibrary Include="difxapp_$(Platform)">
      <HintPath>$(WixSdkPath)\difxapp_$(Platform).wixlib</HintPath>
      <Name>difxapp_$(Platform)</Name>
    </WixLibrary>
  </ItemGroup>

Then add each package to the bundle chain (with other packages).  I use a
single UpgradeCode between the two packages and condition the two MsiPackage
so that only one or the other platform specific MSI is installed.





--
View this message in context: 
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Payload-not-copying-inf-tp7597985p7598007.html
Sent from the wix-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to