[wix-users] How do I make a 64 bit MSI?
J. Pablo Fernández
pupeno at pupeno.com
Wed Apr 25 17:32:05 PDT 2018
Ah, sorry, I got mixed up. My apologies.
On 26 April 2018 at 01:31, Bob Arnson <bob at firegiant.com> wrote:
> I was replying to Edwin’s comment about the Win64 attribute.
>
>
>
> *From:* J. Pablo Fernández <pupeno at pupeno.com>
> *Sent:* Wednesday, 25 April, 2018 20:29
> *To:* WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> *Cc:* Bob Arnson <bob at firegiant.com>
>
> *Subject:* Re: [wix-users] How do I make a 64 bit MSI?
>
>
>
> Hello Bob,
>
>
>
> What do you mean by "It works great"? It looks like I'm doing everything
> fine, but my app still ends up being installed to C:\Program Files (x86)\
>
>
>
> On 26 April 2018 at 01:25, Bob Arnson via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
> It works great -- even back eight years ago when I first wrote about it:
> http://www.joyofsetup.com/2010/05/14/working-hard-or-hardly-working/
>
>
> -----Original Message-----
> From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of
> Edwin Castro via wix-users
> Sent: Wednesday, 25 April, 2018 18:43
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Cc: Edwin Castro <egcastr at gmail.com>
> Subject: Re: [wix-users] How do I make a 64 bit MSI?
>
> I do something similar and set the Win64 attribute on Component elements
> to ensure the components are 64-bit. The Component documentation at
> http://wixtoolset.org/documentation/manual/v3/xsd/wix/component.html says
> the default for the Win64 attribute is 'yes' for x64 but I think I never
> got that working properly without manually specifying the Win64 attribute
> on components.
>
> --
> Edwin G. Castro
>
>
> On Wed, Apr 25, 2018 at 3:05 PM, J. Pablo Fernández via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
> > I tried adding:
> >
> > <?define bitness = "x64" ?>
> > <?define Win64 = "yes" ?>
> > <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
> >
> > but it made no difference. I believe those are variables that are then
> > used in your wxs file, so, they don't make a different per-se.
> >
> > On 25 April 2018 at 22:48, Philip Doragh via wix-users <
> > wix-users at lists.wixtoolset.org> wrote:
> >
> > > I don't know about heat, but in my WXSes I have the following
> > > if...elseif clause to set the install directory to
> > > ProgramFiles64Folder if it is a 64bit build.
> > >
> > > <?if $(var.Platform) = x64 ?>
> > > <?define bitness = "x64" ?>
> > > <?define Win64 = "yes" ?>
> > > <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
> > > <?elseif $(var.Platform) = x86 ?>
> > > <?define bitness = "x86" ?>
> > > <?define Win64 = "no" ?>
> > > <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
> > > <?else ?>
> > > <?error Unknown Platform/BuildType, needed for set Win64 variable
> > > definitions ?>
> > > <?endif ?>
> > >
> > > Phil Doragh
> > >
> > >
> > > -----Original Message-----
> > > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> > Behalf
> > > Of J. Pablo Fernández via wix-users
> > > Sent: Wednesday, April 25, 2018 3:57 PM
> > > To: wix-users at lists.wixtoolset.org
> > > Cc: J. Pablo Fernández
> > > Subject: [wix-users] How do I make a 64 bit MSI?
> > >
> > > I've specified:
> > >
> > > * `-arch x64` when running `candle.exe`.
> > > * `Platform=x64` on the `Package`.
> > > * `ProgramFiles64Folder` as the `Directory` id where things get
> > installed.
> > >
> > > and still, when the app gets installed, it goes to `C:\Program Files
> > > (x86)`.
> > >
> > > There are some other `wxs` generated by `heat.exe`. I tried adding
> > > `-platform x64` and `-platform win64` to the calls to `heat.exe`,
> > > but it made no difference.
> > >
> > > I read
> > >
> > > - https://msdn.microsoft.com/en-us/library/gg513929.aspx
> > > - The section on 64 bit installer in the Wix Cookbook
> > > -
> > > https://stackoverflow.com/questions/4304253/how-do-i-
> > > get-wix-to-generate-a-64-bit-msi
> > >
> > > and I think I'm doing everything that was described there.
> > >
> > > What am I missing?
> > >
> > > I've came up with a minimum case that looks like this:
> > >
> > > <?xml version="1.0" encoding="utf-8"?>
> > > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
> > > <Product Id="*" Name="Project X" Manufacturer="X LLC"
> > > Language="1033" Version="1.0.0.0"
> > > UpgradeCode="5bf2131c-4068-4cb3-adac-bc9c79ed8ce3">
> > > <Package InstallerVersion="301" Compressed="yes"
> > > InstallScope="perMachine" Platform="x64"/>
> > > <Property Id="ApplicationFolderName" Value="Project X"/>
> > > <Property Id="WixAppFolder" Value="WixPerMachineFolder"/>
> > > <UI>
> > > <UIRef Id="WixUI_Advanced"/>
> > > </UI>
> > > </Product>
> > > </Wix>
> > >
> > > and I compile it like this:
> > >
> > > candle.exe -arch x64 -ext WixUIExtension -ext WixUtilExtension
> > > ProjectX.wxs
> > >
> > > light.exe -ext WixUIExtension -ext WixUtilExtension -out
> > > ProjectX-1.0.0-beta.3-win64.msi ProjectX.wixobj
> > >
> > > It obviously complaints about the media table being empty:
> > >
> > > > candle.exe -arch x64 -ext WixUIExtension -ext WixUtilExtension
> > > ProjectX.wxs
> > > Windows Installer XML Toolset Compiler version 3.11.0.1701
> > > Copyright (c) .NET Foundation and contributors. All rights
> reserved.
> > >
> > > ProjectX.wxs
> > >
> > > > light.exe -ext WixUIExtension -ext WixUtilExtension -out
> > > ProjectX-1.0.0-beta.3-win64.msi ProjectX.wixobj
> > > Windows Installer XML Toolset Linker version 3.11.0.1701
> > > Copyright (c) .NET Foundation and contributors. All rights
> reserved.
> > >
> > >
> > > C:\Users\pupeno\AppData\Local\Temp\h1k0echv\ProjectX-1.0.0-
> > > beta.3-win64.msi
> > > : warning LGHT1076 : ICE71: The Media table has no entries.
> > >
> > > The full `.wxs` looks like this:
> > >
> > > <?xml version="1.0" encoding="utf-8"?>
> > > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
> > > xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
> > > <Product Id="*" Name="ProjectX" Manufacturer="X Inc"
> > > Language="1033"
> > > Version="$(var.MSIProductVersion)" UpgradeCode="">
> > > <Package InstallerVersion="301" Compressed="yes"
> > > InstallScope="perMachine" Platform="x64"/>
> > >
> > > <MediaTemplate EmbedCab="yes"/>
> > >
> > > <Icon Id="Icon_ProjectX.ico"
> > > SourceFile="src\main\installer\ProjectX.ico"/>
> > >
> > > <WixVariable Id="WixUISupportPerUser" Value="0"/>
> > > <Property Id="ApplicationFolderName" Value="X
> Inc\ProjectX"/>
> > > <Property Id="WixAppFolder" Value="WixPerMachineFolder"/>
> > > <Property Id="ARPPRODUCTICON" Value="Icon_ProjectX.ico"/>
> > > <WixVariable Id="WixUILicenseRtf"
> > > Value="src\main\installer\eula.rtf"/>
> > > <WixVariable Id="WixUIBannerBmp"
> > > Value="src\main\installer\WixUIBannerBmp.bmp"/>
> > > <WixVariable Id="WixUIDialogBmp"
> > > Value="src\main\installer\WixUIDialogBmp.bmp"/>
> > > <Property Id="AUTO_CONNECT_TO">
> > > <RegistrySearch Id="AutoConnectTo" Root="HKLM"
> > > Key="Software\X Inc\ProjectX" Name="AutoConnectTo"
> > > Type="raw"/>
> > > </Property>
> > > <Property Id="RUN_ProjectX_ON_EXIT" Value="true"/>
> > > <Property Id="INSTALL_SCREENSAVER_ON_EXIT" Value="true"/>
> > > <Property Id="STAGING_DIR" Value="undefined"/>
> > > <Property Id="ARCH" Value="undefined"/>
> > >
> > > <UI>
> > > <UIRef Id="DM_WixUI_Advanced"/>
> > >
> > > <Publish Dialog="DM_ExitDialog" Control="Finish"
> > > Event="DoAction" Value="CA_Run_ProjectX">
> > > RUN_ProjectX_ON_EXIT and
> > <![CDATA[&Ftr_Configurator=3]]>
> > > and NOT Installed
> > > </Publish>
> > >
> > > <Publish Dialog="DM_ExitDialog" Control="Finish"
> > > Event="DoAction" Value="CA_Install_Screensaver">
> > > INSTALL_SCREENSAVER_ON_EXIT and
> > > <![CDATA[&Ftr_Screensaver=3]]> and NOT Installed
> > > </Publish>
> > >
> > > <Dialog Id="DM_ExitDialog" Width="370" Height="270"
> > > Title="!(loc.ExitDialog_Title)">
> > > <Control Id="Finish" Type="PushButton" X="236"
> > Y="243"
> > > Width="56" Height="17" Default="yes" Cancel="yes"
> > > Text="!(loc.WixUIFinish)"/>
> > > <Control Id="Cancel" Type="PushButton" X="304"
> > Y="243"
> > > Width="56" Height="17" Disabled="yes"
> > > Text="!(loc.WixUICancel)"/>
> > > <Control Id="Bitmap" Type="Bitmap" X="0" Y="0"
> > > Width="370" Height="234" TabSkip="no"
> > > Text="!(loc.ExitDialogBitmap)"/>
> > > <Control Id="Back" Type="PushButton" X="180"
> Y="243"
> > > Width="56" Height="17" Disabled="yes"
> > > Text="!(loc.WixUIBack)"/>
> > > <Control Id="BottomLine" Type="Line" X="0" Y="234"
> > > Width="370" Height="0"/>
> > > <Control Id="Description" Type="Text" X="135"
> Y="70"
> > > Width="220" Height="40" Transparent="yes"
> > > NoPrefix="yes"
> > > Text="Thank you for choosing ProjectX.
> > > We sincerely hope it satisfies your needs."/>
> > > <Control Id="Title" Type="Text" X="135" Y="20"
> > > Width="220" Height="60" Transparent="yes" NoPrefix="yes"
> > > Text="!(loc.ExitDialogTitle)"/>
> > > <Control Id="RunProjectXCheckBox" Type="CheckBox"
> > > X="135" Y="150" Width="220" Height="40" Hidden="yes"
> > > Property="RUN_ProjectX_ON_EXIT"
> > > CheckBoxValue="1" Text="Run ProjectX Configurator">
> > > <Condition
> > > Action="show"><![CDATA[&Ftr_Configurator=3]]></Condition>
> > > </Control>
> > > <Control Id="InstallScreensaverCheckBox"
> > > Type="CheckBox" X="135" Y="190" Width="220" Height="40"
> > > Hidden="yes"
> > > Property="INSTALL_SCREENSAVER_ON_EXIT" CheckBoxValue="1"
> > > Text="Install ProjectX as your
> screensaver">
> > > <Condition
> > > Action="show"><![CDATA[&Ftr_Screensaver=3]]></Condition>
> > > </Control>
> > > </Dialog>
> > >
> > > <InstallUISequence>
> > > <Show Dialog="DM_ExitDialog" OnExit="success"
> > > Overridable="yes"/>
> > > </InstallUISequence>
> > >
> > > <AdminUISequence>
> > > <Show Dialog="DM_ExitDialog" OnExit="success"
> > > Overridable="yes"/>
> > > </AdminUISequence>
> > > </UI>
> > >
> > > <MajorUpgrade DowngradeErrorMessage="A newer version of
> > > [ProductName] is already installed."/>
> > >
> > > <Directory Id="TARGETDIR" Name="SourceDir">
> > > <Directory Id="ProgramFiles64Folder">
> > > <Directory Id="APPLICATIONFOLDER">
> > > <Directory Id="Dir_jre" Name="jre"/>
> > > <Directory Id="Dir_jars" Name="jars"/>
> > > </Directory>
> > > </Directory>
> > >
> > > <Directory Id="ProgramMenuFolder">
> > > <Directory Id="Dir_Menu_ProjectX" Name="ProjectX"/>
> > > </Directory>
> > >
> > > <Component Id="Cmp_Auto_Connect_to" Win64="yes">
> > > <RegistryValue Root="HKLM" Key="Software\X
> > > Inc\ProjectX" Name="AutoConnectTo" Type="string"
> > > Value="[AUTO_CONNECT_TO]"/>
> > > </Component>
> > >
> > > <Directory Id="SystemFolder"/>
> > > </Directory>
> > >
> > > <DirectoryRef Id="APPLICATIONFOLDER">
> > > <Component Id="Cmp_ProjectX_Configurator_exe" Guid=""
> > > Win64="yes">
> > > <File Id="File_FT_D_ProjectX_Configurator_exe"
> > > Source="$(var.STAGING_DIR)\ProjectX
> > > Configurator.exe" KeyPath="yes">
> > > <Shortcut Id="Shrt_ProjectX_Configurator"
> > > Name="ProjectX Configurator" Directory="Dir_Menu_ProjectX"
> > > Advertise="yes"
> > > Icon="Icon_ProjectX.ico"/>
> > > </File>
> > > <RemoveFolder Id="Rm_Menu_ProjectX_1"
> > > Directory="Dir_Menu_ProjectX" On="uninstall"/>
> > > </Component>
> > > <Component Id="Cmp_ProjectX_Displayer_exe" Guid=""
> > > Win64="yes">
> > > <File Id="File_FT_D_ProjectX_Displayer_exe"
> > > Source="$(var.STAGING_DIR)\ProjectX Displayer.exe"
> > > KeyPath="yes">
> > > <Shortcut Id="Shrt_ProjectX_Displayer"
> > > Name="ProjectX Displayer" Directory="Dir_Menu_ProjectX"
> > > Advertise="yes"
> > > Icon="Icon_ProjectX.ico"/>
> > > </File>
> > > <RemoveFolder Id="Rm_Menu_ProjectX_2"
> > > Directory="Dir_Menu_ProjectX" On="uninstall"/>
> > > </Component>
> > > <Component Id="Cmp_ProjectX_Renderer_exe" Guid=""
> > > Win64="yes">
> > > <File Id="File_FT_D_ProjectX_Renderer_exe"
> > > Source="$(var.STAGING_DIR)\ProjectX Renderer.exe"
> > > KeyPath="yes">
> > > <Shortcut Id="Shrt_ProjectX_Renderer"
> > > Name="ProjectX Renderer" Directory="Dir_Menu_ProjectX"
> > > Advertise="yes"
> > > Icon="Icon_ProjectX.ico"/>
> > > </File>
> > > <RemoveFolder Id="Rm_Menu_ProjectX_3"
> > > Directory="Dir_Menu_ProjectX" On="uninstall"/>
> > > </Component>
> > > <Component Id="Cmp_Prosaver_scr" Guid="" Win64="yes">
> > > <File Id="File_FT_D_Prosaver_scr"
> > > Source="$(var.STAGING_DIR)\Prosaver.scr" KeyPath="yes"/>
> > > </Component>
> > > <Component Id="Cmp_Icon" Guid="" Win64="yes">
> > > <File Id="File_Icon"
> > > Source="src\main\installer\ProjectX.ico" KeyPath="yes"/>
> > > </Component>
> > > </DirectoryRef>
> > >
> > > <DirectoryRef Id="Dir_Menu_ProjectX">
> > > <Component Id="Cmp_Install_Screensaver" Guid=""
> > > Win64="yes">
> > > <Shortcut Id="Shrt_Install_Screensaver"
> > > Name="Install ProjectX Screensaver"
> > > WorkingDirectory="SystemFolder"
> > > Icon="Icon_ProjectX.ico"
> > > Target="[SystemFolder]rundll32.exe"
> > > Arguments="desk.cpl,InstallScreenSaver
> > > [#File_FT_D_Prosaver_scr]"/>
> > > <RemoveFolder Id="Rm_Menu_ProjectX_4"
> > On="uninstall"/>
> > > <RegistryValue Root="HKCU" Key="Software\X
> > > Inc\ProjectX" Name="installed" Type="integer"
> > > Value="1" KeyPath="yes"/>
> > > </Component>
> > > <Component Id="Cmp_ProjectX_Support" Guid=""
> Win64="yes">
> > > <util:InternetShortcut Id="IShrt_ProjectX_Support"
> > > Name="ProjectX Support" IconFile="[#File_Icon]"
> > > Target="
> > > https://support.ProjectX.tech"/>
> > > <RemoveFolder Id="Rm_Menu_ProjectX_5"
> > On="uninstall"/>
> > > <RegistryValue Root="HKCU" Key="Software\X
> > > Inc\ProjectX" Name="installed" Type="integer"
> > > Value="1" KeyPath="yes"/>
> > > </Component>
> > > </DirectoryRef>
> > >
> > > <CustomAction Id="CA_Run_ProjectX"
> > > Directory="APPLICATIONFOLDER" Return="asyncNoWait"
> > >
> > > ExeCommand="[#File_FT_D_ProjectX_Configurator_exe]"/>
> > > <CustomAction Id="CA_Install_Screensaver"
> > > Directory="SystemFolder" Return="asyncNoWait"
> > > ExeCommand="[SystemFolder]rundll32.exe
> > > desk.cpl,InstallScreenSaver [#File_FT_D_Prosaver_scr]"/>
> > >
> > > <Feature Id="ProductFeature" Title="ProjectX" Level="1"
> > > Display="expand"
> > > Description="ProjectX.">
> > > <ComponentGroupRef Id="ComGrp_JRE"/>
> > > <ComponentGroupRef Id="ComGrp_JARS"/>
> > > <ComponentRef Id="Cmp_Auto_Connect_to"/>
> > > <ComponentRef Id="Cmp_ProjectX_Support"/>
> > > <ComponentRef Id="Cmp_Icon"/>
> > >
> > > <Feature Id="Ftr_Configurator" Title="Configurator"
> > > Level="1"
> > > Description="This is the application you
> > > use to register a new account as well as configure what websites are
> > > displayed, what displayers and renderers have access, etc. You need
> > > this in at least one computer to control your account.">
> > > <ComponentRef Id="Cmp_ProjectX_Configurator_exe"/>
> > > </Feature>
> > > <Feature Id="Ftr_Displayer" Title="Displayer" Level="1"
> > > Description="This is what displays web sites.
> > You
> > > need this (or the screensaver) on all the computers connected to
> > > screens that displays web sites.">
> > > <ComponentRef Id="Cmp_ProjectX_Displayer_exe"/>
> > > </Feature>
> > > <Feature Id="Ftr_Renderer" Title="Renderer" Level="1"
> > > Description="This accesses your websites
> > > and generates the screenshots for the displayers. You need at least
> > > one of these although the Configurator can also act as a Renderer.">
> > > <ComponentRef Id="Cmp_ProjectX_Renderer_exe"/>
> > > </Feature>
> > > <Feature Id="Ftr_Screensaver" Title="Screensaver"
> > Level="1"
> > > Description="This is what displays web
> > > sites as the screensaver. You need this (or the displayer) on all
> > > the computers connected to screens that displays web sites.">
> > > <ComponentRef Id="Cmp_Prosaver_scr"/>
> > > <ComponentRef Id="Cmp_Install_Screensaver"/>
> > > </Feature>
> > > </Feature>
> > > </Product>
> > > </Wix>
> > >
> > > --
> > > J. Pablo Fernández <pupeno at pupeno.com> (http://pupeno.com)
> > >
> > > ____________________________________________________________________
> > > WiX Toolset Users Mailing List provided by FireGiant
> > > http://www.firegiant.com/
> > >
> > > ____________________________________________________________________
> > > WiX Toolset Users Mailing List provided by FireGiant
> > > http://www.firegiant.com/
> >
> >
> >
> >
> > --
> > J. Pablo Fernández <pupeno at pupeno.com> (http://pupeno.com)
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant
> > http://www.firegiant.com/
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
>
>
>
>
> --
>
> J. Pablo Fernández <pupeno at pupeno.com> (http://pupeno.com)
>
--
J. Pablo Fernández <pupeno at pupeno.com> (http://pupeno.com)
More information about the wix-users
mailing list