From: Subbu B. <Sub...@au...> - 2004-11-03 02:19:19
|
Whats the deal (w.r.t Orion's D) below) when working with COM (ActiveX) dlls, ocxs, exes etc.? I build a COM file and the associated (ProgID, TypeLib etc.) registry entries as a single Component. If we break binary compatibility (you can tell I come from the VB6 world!), does that constitute a Component GUID change especially since the new file is not backward compatible? -----Original Message----- From: Erv Walter [mailto:Er...@ep...] Sent: Tuesday, 2 November 2004 2:01 PM To: Orion Edwards Cc: wix...@li... Subject: RE: [WiX-users] Autogenerating GUIDs Ya, I sent the email without finishing my last sentence :) I was going to say that it's mostly critical when you need to support minor upgrade and when you have a component that is installed/shared from multiple installers (typically via merge modules). If you have a system that is completely your own without sharing, it sure is tempting to ignore the rules :) -----Original Message----- From: Orion Edwards [mailto:or...@co...] Sent: Monday, November 01, 2004 6:15 PM To: Erv Walter Cc: wix...@li... Subject: RE: [WiX-users] Autogenerating GUIDs Thanks. From that I infer: A) Once you put a file in a component, you must never put it in any other components which install to the same place. B) If you are ever adding any new files, you must create new component(s) for them, you may not put them in existing components, even if you change the GUID. C) Once you have declared a component which contains some files, you must never change the GUID, or modify the files contained therein except for merely pushing forward new versions. D) I'm pretty sure that because our products are always deployed as major upgrades, with RemoveExistingProducts sequenced before InstallInitialize, old versions of components should be completely removed before any new components get installed, so I should theoretically be safe in more or less blatantly ignoring the rules because they are a pain in the backside, and just changing my components at will? (It's worked thus far :-D) Thanks, Orion. Quoting Erv Walter <Er...@ep...>: > Yes, the situation below is a "violation" of the component rules. In > the situation below, f_1 is in 2 different components that install to > the same path. That is not allowed. One thing this breaks is component > reference counting. If f_1 is in c_1 and in c_2, f_1 will get removed > from the hard drive when *either* c_1 or c_2 is uninstalled. > > For the other scenarios, see: > > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/set > up/what_happens_if_the_component_rules_are_broken.asp > > According to the "rules", if you change the component guid, you must > either: > 1) change the file names of all files that were previously in that > component so there is no overlap or > 2) change the directory that the component installs into so that there > is no overlap > > Note, as far as I can tell, this is mostly critical when you have a > component that is installed > > -----Original Message----- > From: wix...@li... > [mailto:wix...@li...] On Behalf Of Orion > Edwards > Sent: Monday, November 01, 2004 5:42 PM > To: ro...@us... > Cc: wix...@li... > Subject: RE: [WiX-users] Autogenerating GUIDs > > Quoting Rob Mensching <ro...@us...>: > > > So if a single file in the directory changes, the Component GUID > changes? > > If that is true, then you're still not safe. Remember, Components' > > Resources cannot overlap in any way, shape or form. > > By this do you mean, say I have component cmp_A with files f_1 and f_2 > a later version of the product comes out and f_1 and f_2 have changed, > and f_3 > has now been added to cmp_A, and cmp_A's GUID has changed (as it would > with his > md5 scenario). Theoretically this is overlap, but is this bad? I thought > that's > how it was supposed to work. > > Otherwise the only solution for any new files is to always create a new > component when you add new files to your package. This lends itself to > the > one-file-per-component model which is a big nasty mess IMHO, but seems > to be > pretty much the only way (short of spending days sorting out your > components) > to get around the (seemingly almost broken) component rules. > > Could you please clarify? > Thanks, Orion > > > ------------------------------------------------------- > This SF.Net email is sponsored by: > Sybase ASE Linux Express Edition - download now for FREE > LinuxWorld Reader's Choice Award Winner for best database on Linux. > http://ads.osdn.com/?ad_idU88&alloc_id065&op=ick > _______________________________________________ > WiX-users mailing list > WiX...@li... > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------- This SF.Net email is sponsored by: Sybase ASE Linux Express Edition - download now for FREE LinuxWorld Reader's Choice Award Winner for best database on Linux. http://ads.osdn.com/?ad_idU88&alloc_id065&op=click _______________________________________________ WiX-users mailing list WiX...@li... https://lists.sourceforge.net/lists/listinfo/wix-users |