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