For #1 and #2, InstallUtilLib.dll ( or similar ) runs in process and fires up the CLR then calls your class out of process. Instead google for DTF as a much better alternative hosting model.
For #4, you are right, it is simple. I can do it in one line of XML in WiX and let MSI handle the details. For developers I can do it in 1 line of .BAT using the SC command. And, no, your InstallUtil code will not be better. If your services are optional you should put them in their own features. Then the Admin can use the ADDLOCAL and REMOVE properties to install and uninstall them at will. Oh, and do I have experience? Let's see, does Enterprise Engineering at Continental Airlines count? I was the lead for the team responsible for software integration and packaging in an 18,000 seat A.D. forest. I would create SMS/SCCM advertisements that would target 8,000 machines. My installs had to be bulletproof because if they weren't operations would grind to a halt when passengers showed up at the airports in the morning. 30 - 40 servers? Heck, I have more servers then that in my build farm where I now work. We do 100,000+ builds per year and have automated all the aspects of creating and maintaining infrasructure. It's not a good use of my time to actually remote onto a server and use the SC command to delete a service in the first place. Anyways, if you feel the need to reply to this email, know that I won't be monitoring this thread further. I've said what there is to be said on the subject. --- Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me ----- Original Message ---- From: Rune Moberg <jjfl...@gmail.com> To: General discussion for Windows Installer XML toolset. <wix-users@lists.sourceforge.net> Sent: Mon, February 14, 2011 4:01:20 AM Subject: Re: [WiX-users] WCF server cannot connect to the remote database. On Mon, Feb 14, 2011 at 1:34 AM, Christopher Painter <chr...@deploymentengineering.com> wrote: > 1) Run out of process with no ability to access the MSI handle to query >tables, > get/set properties and write to the log. This means they will never be data > driven and are useless to debug when ( not if ) they fail. > > 2) Tattoo the MSIEXEC process with a specific version of the CLR causing > subsequent custom actions to fail. ( Yes, I've witnesssed this. ) These two points seem to contradict eachother. How can it be out-of-process, while at the same time loading up the .Net runtime in-process? > 3) They throw up a modal dialog when they fail, even when the installer is > supposed to be running silently. I have not observed this when using the ServiceInstaller class. Compiling the executable as a non-console app by accident might, but then you have other/bigger problems. > 4) When paired with Visual Studio Deployment Projects they encourage developers > to reinvent the wheel with fragile out of process custom actions. MSI already > has the ability to create services and event logs / sources. Do you really > think your code will be better? Creating a service is a simple operation. And yes, my code is better. :) As I said, I need the ability to install my services from the console. The idea of having a duplicate method of registering my service in the installer is not tempting. Having access to this functionality from the console is vital, both for us developers as well as the network admins. And I also need to allow the admin to install some of my services at a later point without rerunning the installer. I have set up a few <feature>s that refer to empty <component>s that will trigger my custom action. (because had I used <ServiceInstall>, the user would get all or nothing) > PS- If an old school admin is dumb enough to delete a service without first > recording it's values or creating a snapshot and thinks it's too slow to press Do you have much experience administrating servers that serve thousands of users? And deploying software to such servers? (I helped run about 30-40 servers at one point, serving 5000 customers -- intimate knowledge of what software a server runs is important when you only have one or two fallbacks and a couple of thousand customers are running the risk of not receiving nasdaq or nyse trade information) Snapshots are not a good solution. Keep It Simple... -- Rune ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users