[wix-users] Struggling with ICE38 for a per-machine MSI
Joseph Musser
me at jnm2.com
Mon Oct 31 11:56:07 PDT 2016
HKMU fails with "ICE57: Component 'ApplicationShortcut' has both per-user
data and a keypath that can be either per-user or per-machine."
Mine isn't advertised either.
On Mon, Oct 31, 2016 at 2:38 PM, Hoover, Jacob <Jacob.Hoover at greenheck.com>
wrote:
> HKMU works for me, though I do have Advertise=No on it.
>
> <DirectoryRef Id="DesktopFolder">
> <Component Id="Shortcut.Desktop" >
> <Condition>INSTALLDESKTOPSHORTCUT</Condition>
> <RegistryKey Root="HKMU" Key="Software\AppName\$(var.Ap
> plicationFolderName)">
> <RegistryValue Name="Desktop" Value="1" Type="integer"
> KeyPath="yes"/>
> </RegistryKey>
> <Shortcut Id="DesktopShortcut"
> Name='$(var.ShortcutDescription)'
> Target='[!App_exe]'
> Description='Shortcut to $(var.ShortcutDescription)'
> Directory="DesktopFolder"
> WorkingDirectory='ApplicationBin'/>
> </Component>
> </DirectoryRef>
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf
> Of Joseph Musser
> Sent: Monday, October 31, 2016 1:22 PM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] Struggling with ICE38 for a per-machine MSI
>
> So per-user registry keys are mandatory for all shortcuts? There's no
> other workaround? Yuck. I really wish this could be cleaner.
>
> On Mon, Oct 31, 2016 at 1:39 PM, Bob Arnson <bob at firegiant.com> wrote:
>
> > It's not a bug; MSI lets you specify ALLUSERS at install time. It's a
> > public property so someone could try to make a per-machine package
> > per-user. *That* is fairly silly but it is what it is and that's why
> > the ICEs "ignore" what the package authored for ALLUSERS.
> >
> > -----Original Message-----
> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> > Behalf Of Hoover, Jacob
> > Sent: Monday, 31 October, 2016 13:14
> > To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> > Subject: Re: [wix-users] Struggling with ICE38 for a per-machine MSI
> >
> > I believe this semi-related to a buggy ICE that Rob once blogged
> > about. I handled it with a HKMU registry value, however I think that
> > introduces a second ICE57, that I ended up suppressing.
> >
> >
> > -----Original Message-----
> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> > Behalf Of Carlos Sosa
> > Sent: Monday, October 31, 2016 12:01 PM
> > To: 'WiX Toolset Users Mailing List' <wix-users at lists.wixtoolset.org>
> > Subject: Re: [wix-users] Struggling with ICE38 for a per-machine MSI
> >
> >
> > <Fragment>
> > <Component Directory="StartMenu" Id ="CMP_StartMenuShortcut"
> > Guid ="DEXXXXDC-8XXE-4XX4-AXX8-4CXXXX3XXDD2">
> > <Shortcut Id ="ApplicationShortcut"
> > Name ="$(var.ProductName)"
> > Description ="ShortCut"
> > Target ="[INSTALLFOLDER]test.txt"
> > Icon="icon.ico" />
> >
> > <RemoveFolder Id="RemoveStartMenuShortcut"
> > On="uninstall"/>
> >
> > <RegistryValue Root ="HKCU"
> > Key="Software\Microsoft\MyApp"
> > Name="Installed"
> > Type="integer"
> > Value="1"
> > KeyPath="yes" />
> > </Component>
> > </Fragment>
> >
> >
> >
> > -----Original Message-----
> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> > Behalf Of Joseph Musser
> > Sent: Monday, October 31, 2016 10:45 AM
> > To: wix-users at lists.wixtoolset.org
> > Subject: [wix-users] Struggling with ICE38 for a per-machine MSI
> >
> > I'm getting: "Component ApplicationShortcut installs to user profile.
> > It must use a registry key under HKCU as its KeyPath, not a file."
> >
> > Why does the shortcut component install to user profile and how can I
> > force it to install per-machine?
> >
> > I think the shortcut must be in its own component because I want to
> > make the install conditional on a checkbox. Also, the target is a file
> > in a fragment generated by heat so I can't nest the shortcut element
> > inside a file element.
> >
> > All the guidance I can find says that you must use a per-user registry
> > key, but I *do not* want anything installed per-user. Everything must
> > be per-machine.
> >
> > Thanks!
> >
> >
> > Code:
> >
> > ```
> > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
> > <Product Id="****" Name="****" Language="1033" Version="2.0.17.0"
> > Manufacturer="****" UpgradeCode="****">
> > <Package Description="****" InstallerVersion="200" Compressed="yes"
> > InstallScope="perMachine" />
> >
> > <MajorUpgrade DowngradeErrorMessage="A newer version of
> > [ProductName] is already installed." />
> > <MediaTemplate EmbedCab="yes" CompressionLevel="high"/>
> >
> > <!--Property Id="InstallApplicationStartMenuShortcut" /-->
> >
> > <Directory Id="TARGETDIR" Name="SourceDir">
> > <Directory Id="ProgramFilesFolder">
> > <Directory Id="APPLICATIONFOLDER" Name="****" />
> > </Directory>
> > <Directory Id="ProgramMenuFolder">
> > <Directory Id="ApplicationProgramsFolder" Name="****">
> > <Component Id="ApplicationShortcut" Guid="****">
> > <Condition>InstallApplicationStartMenuShortcut</Condition>
> > <Shortcut Id="ApplicationStartMenuShortcut"
> > Name="****"
> > Description="****"
> > WorkingDirectory="APPLICATIONFOLDER"
> > Target="[APPLICATIONFOLDER]Client.exe" />
> > <RemoveFolder Id="RemoveShortcut"
> > Directory="ApplicationProgramsFolder" On="uninstall" />
> > </Component>
> > </Directory>
> > </Directory>
> > </Directory>
> >
> > <Feature Id="Complete" Level="1" Title="****">
> > <ComponentGroupRef Id="HeatGeneratedFragmentComponentGroupId" />
> > <ComponentRef Id="ApplicationShortcut" />
> > </Feature>
> > </Product>
> > </Wix>
> > ```
> >
> > ____________________________________________________________________
> > 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/
> >
> > ____________________________________________________________________
> > 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/
>
More information about the wix-users
mailing list