Thanks, Bob. I still don't really understand why the Class table is being de-emphasised. I suppose it's possible that if you advertise a Class - say for a feature that is installed on first use - that that feature will be installed if some third-party program references it, which could surprise the user.
Worked example: say Word provides its automation object model through the Class table. The user decides to select Word to be installed on first use. They then install some other program which can optionally automate Word. That program checks which version of Word is installed at startup. On starting the program, it loads Word's automation object model. If the class wasn't advertised, this would simply fail. However, since it _is_ advertised, Windows Installer gets invoked to install Word - but the user didn't actually want to use Word at all, and whatever task they did want to do gets delayed due to the installer being invoked. Potentially, worst case, the user will be asked to find source for the feature that needs to be installed and if they can't, whatever task they did want to do would fail. (I actually have nearly this experience with Visual Studio's deployment projects - when I try to build the installer I'm looking to move to WiX, I get Windows Installer trying to install/repair SQL Server 2005 Client Tools, then it fails and complains because I'm running as a limited user and it can't write to Program Files or HKLM, though thankfully at that point the build does continue.) For shared components you have to pick one Feature to be installed when the Class is invoked through an advertised shortcut, and that might lead to further user surprise, which is never a good thing. Is this a plausible scenario or have I misunderstood something? -- Mike Dimmick -----Original Message----- From: Bob Arnson [mailto:[EMAIL PROTECTED] Sent: 25 September 2006 18:05 To: Mike Dimmick Cc: Johan Appelgren; wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Installing COM components Mike Dimmick wrote: > You can use the Class table to take away some of the pain of creating > the registry entries, although Rob Mensching has some reservations > with this apparently. I'm not quite sure why. The SDK currently calls > out the Typelib table as having problems with rollback. Using the > Class table creates an _advertised_ class, which I believe will > potentially run repair when instantiated if the component's > dependencies are the wrong versions (it also allows an administrator > to advertise the package; when the class is instantiated it will be > installed if only advertised, not yet installed - install-on-first-use). > It's important to note that you can use the WiX strongly-typed elements (e.g., Class, ProgId) to create both COM advertisements and plain ol' Registry table entries. -- sig://boB http://bobs.org ------------------------------------------------------------------------- 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