New member to the community. How do I file a bug? -- Bryan -----Original Message----- From: Rob Mensching [mailto:r...@robmensching.com] Sent: Wednesday, January 06, 2010 9:35 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Wix bug when converting class/progID set from advertised="yes" to advertised="no"?
Yeah, this is a bug in WiX v3.0 and WiX v3.5. This is the busted logic: if (null != parent) // if this is a version independent ProgId { if (YesNoType.Yes == firstProgIdForClass) { this.core.CreateRegistryRow(sourceLineNumbers, MsiInterop.MsidbRegistryRootClassesRoot, String.Concat("CLSID\\", classId, "\\VersionIndependentProgID"), String.Empty, progId, componentId); } this.core.CreateRegistryRow(sourceLineNumbers, MsiInterop.MsidbRegistryRootClassesRoot, String.Concat(progId, "\\CurVer"), String.Empty, parent, componentId); } else { if (null == parent) { this.core.CreateRegistryRow(sourceLineNumbers, MsiInterop.MsidbRegistryRootClassesRoot, String.Concat("CLSID\\", classId, "\\ProgID"), String.Empty, progId, componentId); } } I think that second check for "null == parent" should have been "YesNoType.Yes == firstProgIdForClass". Do you mind filing a bug? The work around in WiX v3.0, unfortunately, is to pull the second ProgId out and set its registry keys using RegistryKey/RegistryValue elements. On Wed, Jan 6, 2010 at 8:37 PM, Bryan Reich <bryan.re...@microsoft.com>wrote: > I can confirm that not only does nesting the progIDs not solve the > issue, it actually produces a build failure. > Firstly, it appears the wix documentation's claims that nesting of > more than a single ProgId under another progID creates COM aliases is > incorrect (or perhaps doesn't apply to advertise="no" nodes) because > it tries to treat all of them like version independent ProgId entries and > fails to compile. > (Error message: "Version independent ProgIds cannot have Icons. Remove > the Icon and/or IconIndex attributes from your ProgId element") > > Second, it says that ProgId elements can only be nested up to a single > level deep (i.e. only <ProgId Id="Prog1"> > <ProgId Id="VerIndepProg" /> > </ProgId> > And not > <ProgId Id="Prog1"> > <ProgId Id="VerIndepProg" /> > <ProgId Id="OtherProg2"> > <ProgId Id="VerIndepOtherProg" /> > </ProgId> > </ProgId> > ) > (error message: "ProgId elements may not be nested more than 1 level > deep.") > > And unfortunately I need to do the latter because a number of the > same-class associated progIds also have versions and > version-independent entries. > > -- > Bryan > > -----Original Message----- > From: Bryan Reich > Sent: Wednesday, January 06, 2010 7:41 PM > To: 'Bob Arnson'; General discussion for Windows Installer XML toolset. > Subject: RE: [WiX-users] Wix bug when converting class/progID set from > advertised="yes" to advertised="no"? > > I was looking into that very question, but I don't think it yields the > same affect. > For one thing, when you nest a progID thusly: > > <ProgId Id="MyProgId.12"> > <ProgId Id="MyProgId" /> > </ProgId> > > This indicates that MyProgId is the version independent ProgId for > MyProgId.12. The wix documentation for the ProgId Element: > ... > Chidren > Sequence (min: 1, max:1) > 1. ProgId (min: 0, max: unbounded): The version-independent ProgId > must be the first child elment of the actual ProgId. Nesting other > ProgId elements within the Version-independent ProgId will create COM+ > aliases, see > http://support.microsoft.com/kb/305745 for more information. > > > So the first point I should make is that I'm not sure that every > ProgId in question has a version-independent ProgId to associate with > it, in which case would mean I have nothing to nest as the first > element. Second, the successive ProgIds are COM+ aliases, and while > the documentation on these is terrible as far as I've been able to > hunt down, it appears they don't serve quite the same purpose as what > I am alluding to above. COM+ aliases not only generate an alternate > ProgID, but also an alternate Class ID associated with that ProgId > that happens I believe to point to the same server object. That being > said, not being familiar with COM+ aliases well at all, I could be off > base here, and I'm not fully sure how this operates in the installer, > so that might give me something like what I would want, providing the > first pesky scenario that not every primary ProgId under all of the classes > has a version-independent ProgId associated with it comes into play. > > -- > Bryan > > > -----Original Message----- > From: Bob Arnson [mailto:b...@joyofsetup.com] > Sent: Wednesday, January 06, 2010 5:00 PM > To: General discussion for Windows Installer XML toolset. > Cc: Bryan Reich > Subject: Re: [WiX-users] Wix bug when converting class/progID set from > advertised="yes" to advertised="no"? > > On 1/6/2010 7:42 PM, Bryan Reich wrote: > > What is happening is that WIX, while turning these ProgIds into > > their > constituent registry keys, does NOT use the heuristic of "first progID > under the Class element becomes the CLSID\{myGUID}\ProgID key value" > that is used when advertise is yes. > > I had my COM memories surgically removed years ago, so I'm not > understanding the details here but can you get the effect you're > looking for by nesting your ProgIds? What are the HKCR registry values you're > expecting? > > -- > sig://boB > http://joyofsetup.com/ > > > > > ---------------------------------------------------------------------- > -------- This SF.Net email is sponsored by the Verizon Developer > Community Take advantage of Verizon's best-in-class app development > support A streamlined, 14 day to market process makes app distribution > fast and easy Join now and get one step closer to millions of Verizon > customers http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > -- virtually, Rob Mensching - http://RobMensching.com LLC ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ 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 Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users