Yes.  There are few bugs open in that area.  If this is a duplicate, please add 
as much extra information as possible.  Otherwise, open a new bug.

-----Original Message-----
From: Graham Harwood [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 11, 2008 08:29
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] COM+ DLL reference count

Hi,

Some follow-up on this COM+ repair problem. Having debugged the CA to step
through the logic, it is almost certainly a bug in the ComPlus custom
action. Although the CA checks for an uninstall action during repair, it
doesn't perform one, probably because the CA doesn't use the
'WcaIsReInstalling' test to determine if a repair is going on. i.e. it only
invokes the uninstall when the MSI is performing an uninstall.

The COM+ catalogue already has the application installed and the CA
continues, on a repair, through to the RegisterNativeAssembly() function
which calls the COM+ catalogue interface to register the application
assemblies - this causes the reference count to increase as they are already
in the catalog.

What it should probably do on a repair is either uninstall the application
or not reinstall it if the application properties match. I don't know enough
about the custom action code to change it to test this theory.

I realise with the WiX COM+ expertise being unavailable this may take time
to be resolved. I presume entering it as a bug is the best action at this
stage?

Regards
Graham

2008/11/5 Graham Harwood <[EMAIL PROTECTED]>

> Hi,
>
> Last week I posted a query about our COM+ application getting reference
> counts on running a repair install. I realise COM+ is one of the darker
> corners of installer technology but I'm still scratching my head on this
> one.
>
> The reference counts in HKLM\Software\Microsoft\Windows\SharedDLLs is
> incremented by the COM+ catalogue services during a repair, probably as part
> of the API calls made by the ComPlus custom action in WiX. The repair log
> shows it going through an uninstall/install process which appears correct.
> Now I'm wondering if my authoring is incorrect. I hadn't realised the COM+
> catalogue service causes self registration and I already included a file and
> typelib elements to ensure correct registration. Would this be a problem?
>
> This is one of the COM+ components installed as a separate COM+
> application. After repair the SharedDLLs reference count is 3. The count
> doesn't exist on straight install/de-install.
>
>   <Fragment>
>     <DirectoryRef Id="ProductRoot">
>       <Component Id="DBLink" Guid="CE4BE871-DCE2-4D93-9CE9-BFA113BF6DD0">
>         <Condition>Privileged</Condition>
>         <File Id="DBLinkDll" ShortName="DBLink.DLL" Name="dblink.dll"
> Source="$(env.VSBUILDPATH)\$(var.BuildType)\dblink.dll">
>           <TypeLib Id="C43AB043-FC74-11D2-8F9A-0060080C772F" Advertise="no"
> MajorVersion="1" MinorVersion="0" Language="0" Description="dblink 1.0 Type
> Library">
>             <Class Id="C43AC053-AC74-11D2-8F9A-0060080C772F" Advertise="no"
> Description="DBRequest" Context="InprocServer32" ThreadingModel="free"
> Programmable="yes">
>               <ProgId Id="DBRequest.1">
>                 <ProgId Id="DBRequest" />
>               </ProgId>
>             </Class>
>             <Interface Id="06C8656B-7020-4308-81AD-A121B73F1169"
> Name="IFilterEx" ProxyStubClassId="00020424-0000-0000-C000-000000000046"
> ProxyStubClassId32="00020424-0000-0000-C000-000000000046" />
>               ...
>           </TypeLib>
>         </File>
>         <pca:ComPlusApplication Id="DBRequests" Name="DBRequests"
> ApplicationId="{CE2EEA65-5CE1-4F15-AD18-39F6FF6420CC}"
> ImpersonationLevel="identify" Authentication="none"
> Identity="[REQ_DomainName]\[REQ_UserName]" Password="[REQ_Password]"
> ApplicationAccessChecksEnabled="no">
>           <pca:ComPlusAssembly Id="RequestsAssembly"
> DllPath="$(env.VSBUILDPATH)\$(var.BuildType)\dblink.dll" Type="native">
>             <pca:ComPlusComponent Id="DBRequest.1"
> CLSID="C43AC053-FC74-11D2-8F9A-0060080C772F" />
>           </pca:ComPlusAssembly>
>         </pca:ComPlusApplication>
>       </Component>
>     </DirectoryRef>
>   </Fragment>
> --
>
> Any help appreciated,
>
> Graham
>



--
Graham
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
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 Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to