Derek,

I've had a chance to get back to this installer now, and I'm still
having problems finding enough information to help me understand the
correct WIX constructs to use for this "non-advertised shortcut" error
I'm getting:

c:\> candle -nologo openslp.wxs openslp_files.wxs
openslp.wxs
openslp_files.wxs

c:\> light -nologo -out openslp_2.0.0_x86.msi openslp.wixobj
openslp_files.wixobj -ext WixUIExtension -cultures:en-us"
openslp_files.wxs(30) : error LGHT0204 : ICE03: Invalid Filename;
Table: Shortcut, Column: Name, Key(s): FAQ_shortcut
openslp_files.wxs(28) : error LGHT0204 : ICE43: Component FAQ_comp has
non-advertised shortcuts. It should use a registry key under HKCU as its
KeyPath, not a file.
openslp_files.wxs(28) : error LGHT0204 : ICE57: Component 'FAQ_comp'
has both per-user and per-machine data with a per-machine KeyPath.
openslp.wxs(44) : error LGHT0204 : ICE64: The directory ProgramMenuDir
is in the user profile but is not listed in the RemoveFile table.

Here's the code in context for each error : 

openslp_files.wxs(28) : error LGHT0204 : ICE43: Component FAQ_comp has
non-advertised shortcuts. It should use a registry key under HKCU as its
KeyPath, not a file.
openslp_files.wxs(28) : error LGHT0204 : ICE57: Component 'FAQ_comp'
has both per-user and per-machine data with a per-machine KeyPath.
openslp_files.wxs(30) : error LGHT0204 : ICE03: Invalid Filename;
Table: Shortcut, Column: Name, Key(s): FAQ_shortcut

28: <Component Id="FAQ_comp" DiskId="1"
Guid="EFF22D3D-E8E3-4E67-AD0B-7CDC83735ABC">
29:   <File Id="file6" Name="faq.html"
Source="C:\dev\svnprojects\openslp-trunk\openslp.msi\OpenSLP\Docs\html\faq.html">
30:     <Shortcut Id="FAQ_shortcut" Directory="ProgramMenuDir"
Name="OpenSLP 2.0 FAQ" WorkingDirectory="INSTALLDIR" />
31:   </File>
32: </Component>

openslp.wxs(44) : error LGHT0204 : ICE64: The directory ProgramMenuDir
is in the user profile but is not listed in the RemoveFile table.

42: <Directory Id="TARGETDIR" Name="SourceDir">
43:   <Directory Id="ProgramMenuFolder" Name="Programs">
44:     <Directory Id="ProgramMenuDir" Name="OpenSLP 2.0" />
45:   </Directory>
46:   <Directory Id="DesktopFolder" Name="Desktop" />
47:   <Component Id="EMPTY_comp" DiskId="1"
Guid="D9A267D1-222E-4FE3-9B6C-1E1D5E055F1D" />
48: </Directory>

It looks like there are about 4 different errors here, but I think if I
can get the non-advertised shortcuts thing ironed out, I'll be most of
the way. The trouble is that I don't have enough information for mapping
WIX constructs to MSI Database constructs. The documentation is great as
a reference, but lacks the examples to tie things together. Reading
through MSI docs helps me understand what an advertised shortcut is, but
doesn't tell me how to map it to WIX.

Thanks in advance,
John

>>> "Derek Cicerone" <[EMAIL PROTECTED]> 7/24/2006 5:21 PM
>>>
I believe it needs to look something like the following pseudo-code:

<Component>
  <Registry Root="HKCU" KeyPath="yes" ... />
  <Shortcut ... />
</Component>

Basically, what you need to do is create a component with an HKCU
registry
key as its keypath and the shortcut.  When MSI does a health check on
the
component to see if it's installed for the current user, it will look
for a
registry key to be present, when its not there, it will install the
shortcut, thus ensuring that all users on the machine get the shortcut
installed.

MSI does not do health-checks on shortcuts, only registry keys, files,
directories, and ODBC stuff.  Since the file pointed to by the shortcut
is
likely installed (since it's in a per-machine location), only per-user
stuff
is suitable for checking if everything is installed for the current
user.
To accomplish that, a registry key is the most lightweight thing to use
as a
keypath for determining if everything is installed.

If you'd like more info on this stuff, I'd suggest checking out the
MSI
documentation.  It contains a lot of information, so stuff can be hard
to
find at times, but all this stuff I'm talking about is in there.

Derek

-----Original Message-----
From: John Calcote [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 24, 2006 3:47 PM
To: wix-users@lists.sourceforge.net; [EMAIL PROTECTED] 
Subject: RE: [WiX-users] ORCA validation issue with
wixgeneratedinstaller

Derek,

Okay, the subtle approach didn't work. Now I'll try the less subtle
version of my question ;-)... 

I don't really understand how a registry key is associated with a
shortcut - shortcuts are files in the file system, not registry keys,
AFAIK. This is a more fundamental question. Perhaps it would be more
obvious to me what I should do if I understood the more base concept. 

What does it actually mean to "create any HKCU registry key I like,
and
use it as the keypath"? Can you give me an example of doing this? I
just
don't understand the reason why this has to be done (nor do I
understand
the actual syntax of doing it, but if I understood the meaning of
associating a registry key in the User hive with a shortcut, perhaps I
could glean the syntax on my own. :)

Thanks in advance,
John

>>> "Derek Cicerone" <[EMAIL PROTECTED]> 7/24/2006 4:32 PM
>>>
It's a very good question actually and I've seen no solid
recommendation on
a best-practice approach.  I think you can create any HKCU registry
key
you
like and use it as the keypath (so long as each component has a
different
key).  This issue comes up often so I'll see if I can learn more, but
that's
what I know so far.

Derek

-----Original Message-----
From: John Calcote [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 24, 2006 3:27 PM
To: wix-users@lists.sourceforge.net; [EMAIL PROTECTED] 
Subject: RE: [WiX-users] ORCA validation issue with wix
generatedinstaller

Thanks Derek,

Can you recommend the proper WiX construct for creating the HKCU key
associated with the shortcuts - I have several of these messages, and
I
want to do it the right way, not experiment for days until I come up
with the proper one accidentally. :) I've looked in the Tutorial and
Help documents and I can't find a reference to this issue. If you know
where the information is, please feel free to refer me to the proper
pages.

Thanks,
John

>>> "Derek Cicerone" <[EMAIL PROTECTED]> 7/24/2006 3:21 PM
>>>
That means that the component needs to have a registry key under HKCU
as its
keypath.  This supports installation of per-user shortcuts for a
per-machine
installation.

Alternatively, you could switch to advertised shortcuts by specifying
Advertise="yes" on the Shortcut elements.  However, advertised
shortcuts may
cause undesirable demand-install behavior.

Derek

-----Original Message-----
From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On Behalf Of John
Calcote
Sent: Monday, July 24, 2006 12:18 PM
To: wix-users@lists.sourceforge.net 
Subject: [WiX-users] ORCA validation issue with wix generated
installer

Hi,

Can anyone tell me what the following error message from the Orca
Validator means:

ICE43   ERROR   Component PROGUID_comp has non-advertised shortcuts. It
should use a registry key under HKCU as its KeyPath, not a file.

??

Thanks,
John

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to
share
your
opinions on IT & business topics through brief surveys -- and earn
cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV



_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/wix-users 


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to