Is your code .NET 4.0? If so I was able to reproduce the problem, it appears that the COM+ CA doesn't work with .NET 4.0 assemblies. Can you use .NET 3.5? Have you tried manually installing a .NET 4.0 assembly into COM+?
Neil -----Original Message----- From: Davide [mailto:[email protected]] Sent: 10 April 2014 15:13 To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Register a .NET DLL in a COM+ Application - Could not install type library... Hi Neil, thanks for your reply. All in all my code is from your tutorial and it works fine for native assemblys... but not for COM+ assemblys. Any ideas why? Something wrong in my code? Does anyone have a working example? Regards, Davide 2014-04-10 14:44 GMT+02:00 Neil Sleightholm <[email protected]>: > Is there anything here that helps > http://wix.tramontana.co.hu/tutorial/com-expression-syntax-miscellanea > /com- applications - I wrote it a long time ago and am not sure if it > is still valid but it might be a good starting point. > > Neil > > > >Sorry for this repost... but does anyone have a solution for this? > >I'm close to write my own CA... > > > >Cheers, > > > >Davide > > > > > >2014-04-04 8:22 GMT+02:00 Davide <[email protected]>: > > > >> 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 > -7f > >>fbab9b) > >> 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 > >> > >--------------------------------------------------------------------- > >----- > >---- > >Put Bad Developers to Shame > >Dominate Development with Jenkins Continuous Integration Continuously > >Automate Build, Test & Deployment Start a new project now. Try > >Jenkins in the cloud. > >http://p.sf.net/sfu/13600_Cloudbees > >_______________________________________________ > >WiX-users mailing list > >[email protected] > >https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ---------------------------------------------------------------------- > -------- > Put Bad Developers to Shame > Dominate Development with Jenkins Continuous Integration Continuously > Automate Build, Test & Deployment Start a new project now. Try Jenkins > in the cloud. > http://p.sf.net/sfu/13600_Cloudbees > _______________________________________________ > WiX-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ WiX-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ WiX-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-users

