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

Reply via email to