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

Reply via email to