inline -----Original Message----- 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 [DerekC] Hard to diagnose
this without seeing what the row in the Shortcut table looks like. You
can temporarily skip MSI validation with –sval to see what the MSI looks
like. 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. [DerekC] It needs a dummy
registry key under HKCU, just like the warnings says. openslp_files.wxs(28) : error LGHT0204 : ICE57: Component
'FAQ_comp' has both per-user and per-machine data with a per-machine
KeyPath. [DerekC] If you want to
use non-advertised shortcuts (those without an Advertised attribute) then they
should go in separate components since there are scenarios in which the user
can force them to install to per-user or per-machine locations. To use an
advertised shortcut, just add Advertise=”Yes” openslp.wxs(44) : error LGHT0204 : ICE64: The directory
ProgramMenuDir is in the user profile but is not listed in the RemoveFile
table. [DerekC] Add it to the
RemoveFile table with <RemoveFolder Id=”WHATEVER” Directory=”ProgramMenuDir”
On=”uninstall” /> 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. [DerekC] Try the opposite
direction – each WiX element’s documentation will include a link to
the matching MSI table it creates. For example, the Shortcut element
contains a link under “Windows Installer references” to the
Shortcut Table documentation. 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 |
------------------------------------------------------------------------- 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