This is related (I believe) to administrative deployment of applications
through Active Directory. To ensure it installs and cleans up correctly, you
should make the key path of the component a registry key under
HKEY_CURRENT_USER, and you should use RemoveFolder if you create a folder
under the user's profile (which you are doing). The key path of a component
is the file, registry entry, ODBC data source or directory that Windows
Installer uses to detect whether the component is installed - if the
component is not installed (detected by the absence of the registry key,
ODBC data source or directory or the absence of the correct version of the
file, if it's a versioned file) then Windows Installer will install all
files, registry entries, etc that make up the component. There's some reason
why a component isn't detected correctly for addition or removal if the key
path is a file under the user's profile.
The Windows Installer SDK is sadly lacking in a rationale for why these ICEs
fire.
WiX sets the key path to the first file, registry entry or ODBC data source
which appears under the component. If none of these appear under the
component it is left as the directory.
The ICE itself is a post-build validation step to check that you're using
Windows Installer in the recommended fashion. ICEs tend to be added when
developers regularly make the mistake which causes problems for the
installer in one environment or another. It's a good idea to fix the issues,
although you can suppress a specific ICE by specifying it on the light
command line.
ICE43 is effectively reporting the same thing. Note that a non-advertised
shortcut will not invoke Install On First Use, nor install the feature when
it's been advertised, nor will it invoke repair if the product is damaged -
it's just a regular shortcut.
--
Mike Dimmick
_____
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tony Johnson
Sent: 02 July 2007 10:44
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] ICE38 and ICE43 error messages - what am I doing wrong
?
Hi,
I'm a WiX noob, and I'm trying to setup a component that will install all
the shortcuts for an application, so far I've setup my directories and the
component as follows;
.
<Directory Id="ProgramMenuFolder" Name="Start menu">
<Directory Id="FrameworkMenu" Name="Application Framework">
<Directory Id="SamplesMenu" Name="Samples" />
<Component Id="StartMenuShortcuts"
Guid="67C5EEDB-1C8C-4767-9240-91E0E98C32CC">
<RemoveFolder Id="DelSamplesMenu" On="uninstall"
Directory="SamplesMenu"/>
<RemoveFolder Id="DelFrameworkMenu" On="uninstall"
Directory="FrameworkMenu"/>
<Shortcut Id="HelpShortCut"
Target="![FrameworkDocumentation]"
Directory="FrameworkMenu"
Name="Framework Documentation"
WorkingDirectory="INSTALLDIR" Icon="help.ico"/>
</Component>
</Directory>
</Directory>
.
However, when I build this now, I get the following errors;
Error 1 ICE38: Component StartMenuShortcuts installs to user
profile. It must use a registry key under HKCU as its KeyPath, not a file.
Error 2 ICE43: Component StartMenuShortcuts has non-advertised
shortcuts. It should use a registry key under HKCU as its KeyPath, not a
file.
I really don't understand this message, can anyone tell me what am I doing
wrong ?
Thanks in advance,
Tony
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users