Brad, The exception you hit below is an issue I saw a few weeks back. I thought I checked in the fix already but I guess not (probably part of a bigger change which is on hold). At any rate, I'll fix that issue right away and it will get better testing in the future (the change which fixed it used the functionality as well).
Regarding the problems you're hitting with component groups - we really need to have some repro files to try it out. You can open a bug on SourceForge and attach the necessary files there. It's a bit more cumbersome than sending them via email but I'm certain it works because people have attached files this way in the past. Regarding the pragma request - why are you breaking up wixlibs so small that management of them is an issue? Just make the wixlibs as big as manageably possible because wix will automatically pull out what it needs. Keep in mind that a wixlib file can contain as many wixobj files as necessary (not just a single componentgroup). In Office we sometimes had wixlib files that were several hundred megabytes large. It was great because we knew we could just throw everything in there and let the linker sort it out. Derek -----Original Message----- From: Wilson, Brad [mailto:[EMAIL PROTECTED] Sent: Sunday, July 16, 2006 7:27 PM To: [EMAIL PROTECTED]; wix-users@lists.sourceforge.net; [EMAIL PROTECTED] Subject: RE: [WiX-users] 'Duplicate Symbols' error, Components,and ComponentGroups ok i've tried to send this message twice now with the attached zip files but it bounced back both times (stating that messages w/zip files are being blocked. i also tried changing the attachment to .txt but that failed too). After reading the following, please let me know if you'd still like to see the wxs files and i'll just send them one by one. One thing that I failed to mention (and you'll notice this in the scenarios), that we are using wixlibs for all features, component groups, etc. And if two features include the same ComponentGroup wixlib or component wixobj, then we get the 'Duplicate symbol' error. We completely understand that this is how C++ works when linking and thus, how wix should work as well. Our goal is to design this so the msi author doesn't have to care what Components, ComponentGroups, etc. are in the Feature. They just include the Feature wixlib and they're done. The way that it is designed now, the msi author will have to include every wixlib that the feature uses (Because we clearly can't include those wixlibs in the Feature wixlib because they can be included in multiple features). So at this point we're asking if we can get something similar to #pragma (comment lib ... ) and lib path notions that C and C++ use. We'd like a new wix node (something like WixLibRef) that will specify the exact wixlib filename that should be pulled in via light.exe whenever someone uses the containing wixlib. Light will then search a wix lib path to find the specified wixlibs. This would allow the msi author to only have to include the feature wixlib. It might sound trivial, but as development continues and we add more component groups to our features, the new dependencies will ripple up and cause the msi authors to have to modify the makefiles (light args) for every msi that needs that feature. As component groups are added, we'll get breaking errors. But as component groups are removed, the msi author wont have any indication that he has unnecessary wixlibs included. This would GREATLY benefit us for our next product release. Up to this point, everything we have done is for 'proof of concept' and we are getting ready to begin converting 30+ installs to WiX. Lastly, Rob you asked for the stack dump from light.exe when using the -ai commnad line parameter. Here that is: light.exe : error LGHT0001 : Object reference not set to an instance of an object. Exception Type: System.NullReferenceException Stack Trace: at Microsoft.Tools.WindowsInstallerXml.Field.IsIdentical(Field field) at Microsoft.Tools.WindowsInstallerXml.Row.IsIdentical(Row row) at Microsoft.Tools.WindowsInstallerXml.SectionCollection.FindEntrySectionAndLoa dSymbols(Boolean allowIdenticalRows, IMessageHandler messageHandler, Section&entrySection, SymbolCollection& allSymbols) at Microsoft.Tools.WindowsInstallerXml.Linker.Link(SectionCollection sections) at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run(String[] args) Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.Tools.WindowsInstallerXml.Field.IsIdentical(Field field) at Microsoft.Tools.WindowsInstallerXml.Row.IsIdentical(Row row) at Microsoft.Tools.WindowsInstallerXml.SectionCollection.FindEntrySectionAndLoa dSymbols(Boolean allowIdenticalRows, IMessageHandler messageHandler, Section&entrySection, SymbolCollection& allSymbols) at Microsoft.Tools.WindowsInstallerXml.Linker.Link(SectionCollection sections) at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run(String[] args) at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Main(String[] args) ________________________________ From: Derek Cicerone [mailto:[EMAIL PROTECTED] Sent: Thursday, July 13, 2006 4:58 PM To: Wilson, Brad; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] 'Duplicate Symbols' error, Components,and ComponentGroups For each of these below scenarios, if you could make small wxs files to reproduce each problem, that would greatly speed up investigation because then we could just run the repro in the debugger to figure out what's going on. A lot of this stuff sounds like bugs, but I'd have to see the scenario in the code to be sure. Derek ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Wilson, Brad Sent: Thursday, July 13, 2006 1:03 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] 'Duplicate Symbols' error, Components,and ComponentGroups wix version 3.0.1828.0 When calling light against install projects there are a few situations that are causing problems for us when designing our installs. All of these situations cause the "Duplicate Symbol found' error. Situation 1 (this is pseudo-code): Feature1 - ComponentRef1 - File1 - ComponentRef2 - File2 Feature2 - ComponentRef2 - File2 - ComponentRef3 - File3 <Product ...> <FeatureRef id="Feature1" ... > <FeatureRef id="Feature2" ... > </Product> This is causing a Duplicate symbol error on File2. It was my assumption that components could belong to multiple Features if using <ComponentRef>. Situation 2: If I were to create a ComponentGroup and include File2 in it and then use <ComponentGroupRef> in Feature1 and Feature2, I would also get the 'Duplicate Symbol' error but this time it would be on the ComponentGroup. Situation 3: I'm not sure that this last situation is a bug. But it's something that I would hope would work or it might undermine our usage of nested component groups. In our situation there are a lot of files that belong to many different applications. Our hope was to be able to nest ComponentGroups to be able make a modification to one ComponentGroup and have it affect lots of different installs. Here is the situation: ComponentGroup1 - ComponentGroupNest1 - ComponentGroupNest2 ComponentGroup2 - ComponentGroupNest2 - ComponentGroupNest3 <Feature ...> <ComponentGroupRef id="ComponentGroup1" /> <ComponentGroupRef id="ComponentGroup2" /> </Feature> We were hoping that light would be smart enough to understand that, since those files are included from multiple ComponentGroups, to just ignore any multiples of that file for that feature. Instead, we get the Duplicate symbol error on ComponentGroupNest2. I've tried all of this with the -ai command line option for light.exe but i'm getting a SystemNullReference exception. To get this to work, is -ai supposed to be used or should the three situations work w/o a specific command line option? Brad Wilson | Developer phone & fax +1.317.715.8523 | [EMAIL PROTECTED] Interactive Intelligence Inc. Deliberately Innovative www.inin.com ------------------------------------------------------------------------- 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