Hi all, I spent a whole day with this problem now and would appreciate any help!
To make it really easy I picked a sample COM+ Application from the MSDN ( http://code.msdn.microsoft.com/windowsdesktop/Creating-a-COM-Component-7ffbab9b) and tried to register it in a COM+ application through WIX - without success :( Here is my code: <ComponentGroup Id="BinFileGroup"> <Component Id="MydotNet_dll" DiskId="1" Guid="082B553D-C3D1-4D10-BA4F-8048C84C9C99" Directory="DIR_Bin"> <Class Id="1F2642C4-BDE1-3B50-9DDE-F95747078F71" Context="InprocServer32" Description="COMPlusServicesExample.Customers" ThreadingModel="both" ForeignServer="mscoree.dll"> <ProgId Id="COMPlusServicesExample.Customers" Description="COMPlusServicesExample.Customers" /> </Class> <Class Id="94464148-E1E2-3F84-BEE9-7C72F0D0E01D" Context="InprocServer32" Description="COMPlusServicesExample.CustomersDB" ThreadingModel="both" ForeignServer="mscoree.dll"> <ProgId Id="COMPlusServicesExample.CustomersDB" Description="COMPlusServicesExample.CustomersDB" /> </Class> <File Id="COMPlusDotNet" Name="COMPlusDotNet.dll" Source="$(var.BinDir)\COMPlusDotNet.dll" KeyPath="yes" Assembly="no" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32\1.0.5206.28472" Name="Class" Value="COMPlusServicesExample.Customers" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32\1.0.5206.28472" Name="Assembly" Value="COMPlusDotNet, Version=1.0.5206.28472, Culture=neutral, PublicKeyToken=2cda2eca579c96b4" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32\1.0.5206.28472" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32\1.0.5206.28472" Name="CodeBase" Value="file:///[#COMPlusDotNet]" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32" Name="Class" Value="COMPlusServicesExample.Customers" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32" Name="Assembly" Value="COMPlusDotNet, Version=1.0.5206.28472, Culture=neutral, PublicKeyToken=2cda2eca579c96b4" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{1F2642C4-BDE1-3B50-9DDE-F95747078F71}\InprocServer32" Name="CodeBase" Value="file:///[#COMPlusDotNet]" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32\1.0.5206.28472" Name="Class" Value="COMPlusServicesExample.CustomersDB" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32\1.0.5206.28472" Name="Assembly" Value="COMPlusDotNet, Version=1.0.5206.28472, Culture=neutral, PublicKeyToken=2cda2eca579c96b4" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32\1.0.5206.28472" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32\1.0.5206.28472" Name="CodeBase" Value="file:///[#COMPlusDotNet]" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32" Name="Class" Value="COMPlusServicesExample.CustomersDB" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32" Name="Assembly" Value="COMPlusDotNet, Version=1.0.5206.28472, Culture=neutral, PublicKeyToken=2cda2eca579c96b4" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{94464148-E1E2-3F84-BEE9-7C72F0D0E01D}\InprocServer32" Name="CodeBase" Value="file:///[#COMPlusDotNet]" Type="string" Action="write" /> <complus:ComPlusApplication Id="MydotNet" Name="COM Plus Services Example"> <complus:ComPlusAssembly Id="COMPlusDotNet" TlbPath="[#COMPlusDotNetTlb]" Type=".net" DllPath="[#COMPlusDotNet]"> <complus:ComPlusComponent Id="CheckInterface" CLSID="1F2642C4-BDE1-3B50-9DDE-F95747078F71"/> <complus:ComPlusComponent Id="CheckInterface2" CLSID="94464148-E1E2-3F84-BEE9-7C72F0D0E01D"/> </complus:ComPlusAssembly> </complus:ComPlusApplication> </Component> <Component Id="MydotNet_tlb" DiskId="1" Guid="82E37437-9A85-4D93-985A-930AE8B5562B" Directory="DIR_Bin"> <File Id="COMPlusDotNetTlb" Name="COMPlusDotNet.tlb" Source="$(var.BinDir)\COMPlusDotNet.tlb" KeyPath="yes" > <TypeLib Id="{382C73BF-1243-3749-ABFC-EE2FF15CC160}" Description="This is an example for creating COM+ Serviced applications in .NET" HelpDirectory="DIR_Bin" Language="0" MajorVersion="1" MinorVersion="0"> <Interface Id="{4F36FC57-4D0A-38BF-9A0D-ECDD5C8E29A4}" Name="_Customers" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" /> <Interface Id="{68D25731-3207-39B0-AE21-CE6AD66A2F8A}" Name="_CustomersDB" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" /> </TypeLib> </File> </Component> </ComponentGroup> The error message I get: ComPlusInstallExecute: ExceptionInfo: Code='0', Source='System.EnterpriseServices', Description='Could not install type library 'C:\ApplDir\COMPlusDotNet.tlb' into application COM Plus Services Example', HelpFile='', HelpContext='0' ComPlusInstallExecute: Error 0x80020009: Failed to invoke RegistrationHelper.InstallAssembly() method ComPlusInstallExecute: Error 0x80020009: Failed to register .NET assembly ComPlusInstallExecute: Error 0x80020009: Failed to register assembly, key: COMPlusDotNet ComPlusInstallExecute: Error 0x80020009: Failed to register assemblies When I comment out this part: <complus:ComPlusAssembly Id="COMPlusDotNet" TlbPath="[#COMPlusDotNetTlb]" Type=".net" DllPath="[#COMPlusDotNet]"> <complus:ComPlusComponent Id="CheckInterface" CLSID="1F2642C4-BDE1-3B50-9DDE-F95747078F71"/> <complus:ComPlusComponent Id="CheckInterface2" CLSID="94464148-E1E2-3F84-BEE9-7C72F0D0E01D"/> </complus:ComPlusAssembly> An empty ComPlusApplication is created successfully. When I then manually install the tlb (or the dll) via MMC snap-in into this COM+ application it works fine. I also tried the DllPathFromGAC attribute and register the DLL in GAC, but it also failed with an error message, that the assembly name could not be found in the GAC. Thank you in advance! Best regards, Davide ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-users

