Hello, I'm attempting to build a Wix based installer for a COM+ module I've written. The install is being immediately rolled back and I can see the following in the MSI logs:
MSI (s) (B8:F8) [10:05:59:447]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIEBC7.tmp, Entrypoint: ComPlusInstallExecuteCommit ComPlusInstallExecuteCommit: ExceptionInfo: Code='0', Source='System.EnterpriseServices', Description='Failed to load assembly 'c:\applications\booking queue triggers\mybookingqueue.dll'.', HelpFile='', HelpContext='0' ComPlusInstallExecuteCommit: Error 0x80020009: Failed to invoke RegistrationHelper.InstallAssembly() method ComPlusInstallExecuteCommit: Error 0x80020009: Failed to register .NET assembly ComPlusInstallExecuteCommit: Error 0x80020009: Failed to register assembly, key: MyQueueAssembly.9B7BA928_FED6_4110_BA5E_C1FB6CC7ACE5 ComPlusInstallExecuteCommit: Error 0x80020009: Failed to register assemblies CustomAction ComPlusInstallExecuteCommit returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) 'c:\applications\booking queue triggers' was passed into msiexec as INSTALLDIR, and I briefly see mybookingqueue.dll appear in this folder before the rollback. ProcMon reveals a series of 'NAME NOT FOUND' results followed by a 'FILE LOCKED WITH WRITERS' result and a series of 'SUCCESS' results, so I'm guessing this is the installer checking for the existence of the file, writing the file and then reading it. It looks like a similar issue is described here: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/COM-registration-help-td7584402.html The following comment describes the issue as far as I'm aware: *...the WiX code uses an assembly System.EnterpriseServices (method RegistrationHelper) to install COM+ this doesn't seem to have a .NET version associated with it but on a couple of machines I have checked they don't always have the .NET 4.0 reference under the InprocServer32 key (not done COM/COM+ for a while so I'd need to research this more to be completely sure how it works). * mybookingqueue.dll is a .net 4.5.1 assembly, so it seems like this could be the cause. Has anyone had any success in writing a COM+ installer since that thread (Wix 3.7/March 2013)? I'm using Wix 3.8 and the relevant Wix fragment is below: <Component Id="BookingQueue_dll" Guid="{C77FB259-0CA3-44F8-8CBE-A7984FC56532}"> <File Id="BookingQueue_dll" Name="mybookingqueue.dll" Source="..\Stage\mybookingqueue.dll" KeyPath="yes" Assembly="no" /> <complus:ComPlusApplication Id="MY_BOOKING_TRIGGERS" Name="My COM+ Booking Queue Triggers"> <complus:ComPlusAssembly Id="BookingQueueAssembly" DllPath="[#BookingQueue_dll]" TlbPath="[#BookingQueue_tlb]" Type=".net" RegisterInCommit="yes"> <complus:ComPlusComponent Id="CheckInterface" CLSID="04DAACF4-F6D1-452E-978D-EF9F13A0C3D0"/> </complus:ComPlusAssembly> </complus:ComPlusApplication> </Component> I'm looking at DTF/custom scripting as described at the end of that thread, but it is not ideal as I wanted to have rollback for a failed install (also, I've found that using GACUTIL/registering assemblies in Windows Server 2008 can be kind of a pain). Any assistance is greatly appreciated. Kind regards, Aaron Newton. ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users