First, you should not be packaging someone else's resources in your MSI.  You 
should be getting a Merge Module that has all of the COM and DLL and most 
importantly the *correct* Component GUIDs.  That's what Merge Modules were 
designed for.  If you're not getting a Merge Module and the producer shares the 
resource with other people you're now very much in jeopardy of entering DLL 
Hell.

Second, if you're screwed then you're screwed.  Personally, I always start 
pushing for crappy resources to get pushed out of the product.  Setup failures 
are deadly for customers.  They almost always turn into support calls (and 
everyone I've talked to, support calls are an undesirable expense).  Of course, 
sometimes the developer on setup doesn't get to make that call.  <smile/>

If you want people to help brainstorm how to work around a particular issue 
then understand that most people here will suggest fixing the core issue rather 
than avoiding it.  So be very clear that you've exhausted all options and be 
very specific about what you're trying to accomplish.  Workaround suggestions 
are often very specific to the scenario so if you're not clear the suggestions 
you get might not work... or not work the way you want when you try to update 
your app some months later.  <smile/>

Finally, "advertising" is generally considered part of assigning/publishing in 
Windows Installer.  The MSI SDK has stuff about it.  Based on my experience, 
advertising shortcuts and extensions works well but COM advertising has some a 
rather unpleasant user experience and side effects.

-----Original Message-----
From: Troy Howard [mailto:[EMAIL PROTECTED]
Sent: Thursday, October 02, 2008 02:04
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] COM registration weirdness

Regarding SelfReg, or not.... I'm not completely sure I drink the Kool-Aid
on this one.  So, I understand that SelfRegCost violates transactability
rules (spell checker says transactability is not a word >shrug<) due to MSI
and how it handles that... But what then IS the recommended way to deal with
the scenario where you have a COM DLL that you didn't write and can't get a
different version of that does some wacky stuff in DllRegisterServer...

How should those DLLs be handled? If we use SelfRegCost, everything works
after a successful install, but at a rollback, or uninstall, there's no way
to undo it. What if there were CAs for RegSvr32/RegAsm, that were built-in
and easy to use, and then you could make sure that was happening correctly,
at the right times? This is similar to the duct-tape batch file solution
(one batch for install, one for uninstall), or bunch of QtExec actions to
those programs with appropriate cmdline params. The main thing seems to be
that they are scheduled at the right time, so that uninstall calls regsvr32
/u.

I understand that modifying system state outside of MSI's system is  a
no-no,  but if you're stuck with a DLL that operates that way, so be it.

Regarding the situation that I just finished with, I would like to have a
deeper understanding of the term "Advertise" that is being used in WiX/MSI
contexts. What does this mean exactly, in relation to COM DLLs?

Rob M mentioned that: "... those actions are only necessary if you are using
the Advertised features of COM registration otherwise it's all just Registry
rows."

I read the blog post he linked to about why advertising is bad, but it lacks
a definition of what advertising is. Does that definition exist somewhere?
With context regarding COM?

Thanks,
Troy



On Thu, Oct 2, 2008 at 1:09 AM, John Hall
<[EMAIL PROTECTED]>wrote:

> Neil wrote:
> > I have tried a
> > few times to remove the unrelated code and never successfully
> > got the component to work or to leave the machine working on
> > uninstall. Have you ever generated the WiX registry code for
> > VB6 COM component? Has anyone?
>
> Neil,
>
> I have. I wrote a custom build task that extracts the registration
> information at build time [1].
>
> The registration entry point is called with some registry redirection in
> place, and then I harvest the created registry entries removing the
> following:
>
>  - CLSID {D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731}
>
>  - Typelibs {EA544A21-C82D-11D1-A3E4-00A0C90AEA82} and
>   {000204EF-0000-0000-C000-000000000046}, plus any Interfaces that
>   reference these two type libraries.
>
> This works for me.
>
> regards,
> John
>
>
> [1] I know this is very much frowned upon, but I always create major
> upgrades and don't create patches... YMMV
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to