[wix-users] Struggling with ICE38 for a per-machine MSI
Joseph Musser
me at jnm2.com
Mon Oct 31 12:13:55 PDT 2016
I figured out I can pass light -sice:ICE38 -sice:ICE43. Nothing seemed to
go wrong installing and uninstalling. While I dislike suppressing errors,
the alternative is less desirable.
I don’t see other installers creating a registry value for each user for
each shortcut. It seems super weird that it’s acceptable to direct people
to do that.
Thanks for the help!
On Mon, Oct 31, 2016 at 2:56 PM, Joseph Musser <me at jnm2.com> wrote:
> 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