Option 1 may be the best. All of that "install/upgrade/uninstall stuff" you listed on that line is good stuff and difficult to do well.
I think Option 2 won't work because your CustomAction will not be elevated after InstallFinalize and thus will not be able to make the COM+ configuration then. (thank you Fusion for a faulty GAC design, I don't care much for Fusion as you might guess). Option 3 has the issues you list. Option 4 would require that tool to elevate... multiple elevations annoy users... ideal to avoid it. Personally, I'd probably go with Option 1. Don Benson wrote: >> 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 > ------------------------------------------------------------------------------ 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