> Windows Installer does not commit files to the GAC until
> InstallFinalize
> (the end of the transaction).  This prevents GAC assemblies from being
> used or even referenced really during the installation transaction.  I
> think this design limitation is the root of your issue.

So, now I know the problem. The next question is, what is a recommended 
solution to the problem? Is there a best practice?

I tried scheduling the ComPlusInstallExecute custom action after 
InstallFinalize, but this generates an ICE77 validation error because the 
action is an in-script action and must be between InstallInitialize and 
InstallFinalize. Then I tried scheduling ComPlusInstallPrepare after 
InstallFinalize. This compiled, but then errored off during the installation 
with the same message about where it is allowed to be scheduled.

How do I get the COM Plus registration to occur after the InstallFinalize?

The documentation for the ComPlusAssembly element implies that setting the 
RegisterInCommit attribute to "yes" should schedule the assembly to be 
registered after the InstallFinalize action. I have that attribute set, but the 
registration is definitely getting scheduled before InstallFinalize. Is this a 
bug in the latest build of the ComPlus extension?

As I see it, I have several options with current version...

Option 1:
Include the .NET DLL in the GAC and in a folder, which requires separate 
components for the file. I've seen threads about deploying .Net assemblies to 
both places. The ComPlus configuration can reference the DLL component that 
installs to a folder. If there is an error during the COM+ registration, the 
entire installation will be rolled back. Upgrades and removals are handles 
automatically through the built-in functionality.

Option 2:
Do not reference the .NET assembly in a ComPlusAssembly element. Create my own 
custom action to register the .NET assembly into the existing COM+ App. The 
custom action will be scheduled after InstallFinalize. If this custom action 
fails, the app will still be installed, but non-functional. I will also have to 
also deal with upgrades and removals.

Option 3:
Package the COM+ application separately using the export option from the 
COMAdminCatalog API. The package would have to be built into a bootstrapper 
that installs the rest of our server-based utilities. This creates another 
entry in Add/Remove programs just for the COM+ application.

Option 4:
Manage the COM+ application with all custom code. The server includes a 
"heartbeat" service. We could add functionality to the heartbeat service to 
validate that the COM+ configuration is correct and try to fix it. Upgrades and 
removals are still a complication.

Option 1 seems to be the simplest choice for now, and I do have some time 
pressure to get the installation working soon. I would appreciate any other 
ideas or thoughts on my options.

Sincerely,
- Don Benson -

CONFIDENTIALITY NOTICE: This email and any files transmitted with it are the 
property of Tribute Inc. and/or its affiliates. The contents of this 
communication are confidential and may contain information that is privileged 
and/or exempt from disclosure under applicable law. It is intended solely for 
use of the individual or entity to whom this email is addressed. If you are not 
one of the named recipient(s) or otherwise have reason to believe that you have 
received this message in error, please notify the sender and immediately delete 
this message and any attachments. Any unauthorized use, retention, 
dissemination, forwarding, printing, or copying of this email is strictly 
prohibited.

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to