And you have double checked that the CLSID's you are providing for your 
<ComPlusComponent> elements are the same provided in you .idl file? You 
actually only have a single component in each module?

Other than that I wonder if there could be anything about your modules being 
OCX'es but I doubt it. As far as I can remember they are just DLL's with a 
different extension...

You shouldn't need anything besides what you have here as far as I can tell. 
The [#...] syntax is standard syntax to expand the target path of a file being 
installed.

BTW, you don't need the <RemoveFile> tags in the below example.

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Moni Chow
Sent: Friday, March 16, 2007 9:26 AM
To: 'Fredrik Grohn'; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Wix for COM+ object

Dear Fredrik,

Sorry for my late reply. Here is the part of code I have:

                <Directory Id="SystemFolder" Name="System" >
                        <Component Id="CrcOcx" DiskId="1" 
Guid="53E478B2-4A6A-458b-A00E-7CE54FC539E5">
                                <File Id="CrcOcx" Name="CrcOcx" 
LongName="CRC.ocx"
                                Source="crc.ocx" KeyPath="yes" Vital="yes" />
                                <pca:ComPlusApplication Id="ComCrc" Name="CRC 
COM Application" >
                                        <pca:ComPlusAssembly 
Id="ComCrcAssembly" Type="native" DllPath="[#CrcOcx]" >
                                        <pca:ComPlusComponent Id="ComCrc" 
CLSID="3F11AD23-56FC-11D8-802D-00055D05CDC9" />
                                        </pca:ComPlusAssembly>
                                </pca:ComPlusApplication>
                                <RemoveFile Id="RemoveCrc" On="uninstall" />
                        </Component>

                        <Component Id="MKFWOcx" DiskId="1" 
Guid="77B72DAF-4583-46c5-AE7E-A4A0922D2E32">
                                <File Id="MKFWOcx" Name="MKFWOcx" 
LongName="MKFW.ocx"
                                Source="MKFW.ocx" KeyPath="yes" Vital="yes" />
                                <pca:ComPlusApplication Id="ComMKFW" Name="MKFW 
COM Application" >
                                        <pca:ComPlusAssembly 
Id="ComMKFWAssembly" Type="native" DllPath="[#MKFWOcx]" >
                                        <pca:ComPlusComponent Id="ComMKFW" 
CLSID="74C9AB2E-13C1-40FA-B075-9B4015ED68BE" />
                                        </pca:ComPlusAssembly>
                                </pca:ComPlusApplication>
                                <RemoveFile Id="RemoveMKFW" On="uninstall" />
                        </Component>

                        <Component Id="MSWINSCKOcx" DiskId="1" 
Guid="2900D6B4-02B0-43fe-A119-ED2617B08E3D" NeverOverwrite="yes">
                                <File Id="MSWINSCKOcx" Name="MSWINOcx" 
LongName="MSWINSCK.ocx"
                                Source="MSWINSCK.ocx" KeyPath="yes" Vital="yes" 
/>
                                <pca:ComPlusApplication Id="ComMSWINSCK" 
Name="MSWINSCK COM Application" >
                                        <pca:ComPlusAssembly 
Id="ComMSWINSCKAssembly" Type="native" DllPath="[#MSWINSCKOcx]" >
                                        <pca:ComPlusComponent Id="ComMSWINSCK" 
CLSID="248DD890-BB45-11CF-9ABC-0080C7E7B78D" />
                                        </pca:ComPlusAssembly>
                                </pca:ComPlusApplication>
                                <RemoveFile Id="RemoveMSWINSCK" On="uninstall" 
/>
                        </Component>
                </Directory>

It seems that the installer build a new CLSID in registry which is different 
from the one specified in the script, so it cannot run the application, having 
error of "Class not registered". Do you know why it happens and how to fix it? 
Is there any special meaning for the DllPath with symbol # that a specific 
value should be given? Are there any codes that should be included such that it 
will unregister the COM+ libraries and then remove it if no other programs use 
it?

Thanks so much for your help!

Regards,
Moni
________________________________
From: Fredrik Grohn [mailto:[EMAIL PROTECTED]
Sent: Friday, February 16, 2007 1:12 AM
To: 'Moni Chow'; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Wix for COM+ object

Nah, I don't think so. Is there anything in the log that indicates that 
something went wrong? Would you be able to share some of your WiX code?

From: Moni Chow [mailto:[EMAIL PROTECTED]
Sent: Monday, February 12, 2007 3:40 AM
To: 'Fredrik Grohn'; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Wix for COM+ object

Dear Fredrik,

I have the same structure as you do in the code except Assembly=".net". This 
should not be the root cause right?

Regards,
Moni

________________________________
From: Fredrik Grohn [mailto:[EMAIL PROTECTED]
Sent: Friday, February 09, 2007 5:14 AM
To: 'Moni Chow'; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Wix for COM+ object

Remember that if you DLL is native you currently have to list all components 
contained in the DLL under the <ComPlusApplication> tag as <ComPlusComponent> 
tags. This is because the COMAdminCatalog does not provide a method to 
uninstall an entire assembly.

Here is an old example I usually toss around:

<?xml version='1.0' encoding='UTF-8'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi' 
xmlns:pca="http://schemas.microsoft.com/wix/2005/02/pubca";>

      ...

      <Component Id="MyComPlusAssembly_dll" Guid="GUID_HERE">
            <File Id="MyComPlusAssembly_dll" Name="mcpa.dll" 
LongName="MyComPlusAssembly.dll" DiskId="1" KeyPath="yes" Assembly=".net" 
src="MyComPlusAssembly.dll" />

            <pca:ComPlusApplication Id="MyComPlusApp" Name="My COM+ 
Application">
                  <pca:ComPlusAssembly Id="MyComPlusAssembly" Type="native" 
DllPath="[#MyComPlusAssembly_dll]">
                        <pca:ComPlusComponent 
Id="MyComPlusAssembly.MyComPlusComponent" CLSID="guid here" />
                  </pca:ComPlusAssembly>
            </pca:ComPlusApplication>
      </Component>

      ...

</Wix>

(Uguh, I can't believe I still haven't gotten around to add an example to the 
official documentation.......)

Fredrik

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Moni Chow
Sent: Wednesday, February 07, 2007 6:51 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Wix for COM+ object

I can't remove the COM+ object when I uninstall the application so that it 
fails to re-install the application when it checks that the COM+ object already 
exists. Anybody could show me how to deal with COM+ object using Wix? Thank you 
very much!!!

Best regards,
Moni
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to