Rob M. wrote some articles on the subject a few years ago: http://robmensching.com/blog/posts/2007/8/3/zen-and-the-art-of-custom-actions http://robmensching.com/blog/posts/2007/8/10/zataoca-classes-of-custom-actions http://robmensching.com/blog/posts/2007/8/17/zataoca-custom-actions-are-generally-an-admission-of-failure http://robmensching.com/blog/posts/2007/9/13/zataoca-custom-actions-should-be-data-driven
Palbinder Sandher Software Platform Engineer T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the <Virtual Environment>** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -----Original Message----- From: Walt Dexter [mailto:wfdex...@gmail.com] Sent: 15 October 2013 14:20 To: chr...@iswix.com; General discussion for Windows Installer XMLtoolset. Cc: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] What is the downside to this? I think I need to better understand how custom actions really work before I'll understand why it's a bad idea. Based on what i know now, I don't understand how you get all five things if its a truly custom custom action. Guess I'll work on doing that. On Oct 15, 2013, at 6:35 AM, "Christopher Painter" <chr...@iswix.com> wrote: > Walter, > > In reply to your "yes, but.." comment earlier. No, sorry, no buts. > I've worked at a number of places over the years both on the ISV side and > the Enterprise side. I'm currently the deployment architect for a certain > well known big box retailer that loves the color orange. We probably have > more then a few stores where you live and see our commercials all day long > while watching football. :-) On the store side we have somewhere around > 130,000 desktops and in the total enterprise around 300,000 instances of > windows. We have countless applications and for each of those we require > 1) Install, 2) Uninstall, 3) Upgrade, 4) Downgrade 5) Rollback ( for all 4 > actually ) to be fully supported and tested before handing off to > operations for deployment. There is very little tolerance for failure from > the business because a screw up results in lost sales. We don't achieve > this level of excellence using Wise, InstallScript, NSIS, InnoSetup or > others. We achieve it using properly designed MSIs and occasionally AppV > packages. A lot of our working is spent "fixing" what other vendors send > us as what they think are passable installer experiences. > > Yes, sorry, it is a lot of work to learn MSI. I was writing InstallScript > installers for 7 years and was not initially impressed with MSI. In fact, > you could say I was a late adopter since I didn't pick it up until 2003. > It took me 6 months of banging my head against the wall trying to get it to > do what I wanted before I felt comfortable. It was another 6 months before > I had that "been there done that" feeling. > > Regards, > Chris > > ---------------------------------------- > From: "Walter Dexter" <wfdex...@gmail.com> > Sent: Tuesday, October 15, 2013 12:51 AM > To: "General discussion for Windows Installer XML toolset." > <wix-users@lists.sourceforge.net> > Subject: Re: [WiX-users] What is the downside to this? > > Rob- > > Thanks for the lengthy reply. I feel like I need to read it about a dozen > times more to have a chance of getting everything in there. Not tonight, > though. > > On Tue, Oct 15, 2013 at 12:25 AM, Rob Mensching > <r...@robmensching.com>wrote: > >> If all you're going to do is exec a bunch of batch files and vbscripts > then >> the InnoSetup executable is probably a *far* better idea. Those > scripting >> platforms are not the way to go to create a robust installation. >> >> However, if you were to integrate fully with the Windows Installer > (which >> is admittedly more work and requires a lot more understanding) then > you'd >> get functionality like rollback, error reporting, patching, resource >> sharing, publishing/assigning. You'd also end up with a far less complex >> installer... once you got the declarative parts all in place. >> >> It is too bad that the WiX toolset doesn't come with Ini file > manipulation >> extension already. I think many people must create private one off >> solutions and never consider contributing back to the WiX toolset so no > one >> ever has to implement that again. >> >> Back in 2001 I wrote custom actions for configuring IIS, SQL, users, > file >> shares. I contributed them to the WiX toolset and for over a decade > others >> have benefited with all the functionality I described above (rollback, >> patching, resource sharing, etc) by just adding a few lines of XML. > We've >> had some contributions since (Bob did gaming extension and internet >> shortcut, and Fredrik gave us COM+ and MSMQ) but there are many more >> opportunities for people to contribute and make each other's future > lives >> much better. >> >> So, anyway, the answer is you'd end up with a far more robust installer > by >> doing as the others suggested. It will take more work up front because > no >> one has contributed the Ini custom actions already. If you wanted to do > the >> work and get Ini custom actions created, feel free to jump on the >> wix-d...@lists.sourceforge.net mailing list. That's where people the > below >> were pointing you. >> >> Or you could just hack it and deal with the issues you'll probably see. > In >> that case, I encourage you to test install, install rollback, uninstall, >> uninstall rollback, repair, repair rollback, and major upgrade. There > are >> probably more scenarios to think about but I don't tend to remember them >> all since I try to write the custom actions as the Windows Installer SDK >> recommends and then it all just works together. >> >> By the way, these recommendations aren't unique to the Windows > Installer. >> They're applicable to any installation technology you use. It's just > people >> using the Windows Installer tend to expect all those fundamental > scenarios >> to work so the bar is a bit higher. That's why corporations tend to >> standardize on the Windows Installer. The Windows Installer makes their >> life easier. That seems fair to me. Hopefully, there are (many, manymore >> people installing your software than there are building it... which > means >> saving the customer problems by taking on the work in development is a > good >> trade (economically speaking). >> >> >> On Mon, Oct 14, 2013 at 9:59 PM, Walter Dexter <wfdex...@gmail.com> > wrote: >> >>> I totally understand what you're saying. But... >>> >>> As far as I can tell, I'm going to have to do custom actions to do a >> bunch >>> of the stuff that Inno does easily. Like updating an INI file or > running >> a >>> program. >>> >>> If I move everything out of Inno to WiX that an MSI can do natively - >> which >>> appears to really just be registry settings, files and directories - > what >>> do I lose by keeping the stuff that has to be a custom action inside > an >>> Inno and treating that Inno as a single custom action? >>> >>> What I gain is that I have an Inno setup that I know already works, > and >>> when it gives troubles, I have an environment that lets me do some >>> interactive debugging. >>> >>> If I write a C# custom action DLL (which seems like a lot of work) all >> it's >>> going to do is a bunch of "Exec" commands to run other installers, > batch >>> files and VBScripts. >>> >>> I'm fairly MSI and WiX naive. That's why I'm asking - I just totally >> don't >>> understand what I gain by doing it "right" with a DLL for custom > actions >>> versus delivering an executable that does the stuff I want to do that >>> happens to have been created with Inno Setup. >>> >>> Honestly, your response didn't add much to my understanding, but I'm > sure >>> it's more me than you. >>> >>> >>> On Mon, Oct 14, 2013 at 7:36 PM, Christopher Painter <chr...@iswix.com >>>> wrote: >>> >>>> IMO it's crazy. You have to ask yourself WHY Windows Installer is > the >>>> corporate standard in the first place. MSI is transactional, >>> declarative, >>>> rich in meta data and transformable with standardized behaviors. You >> lose >>>> all of that when you choose to use it merely as a glorified ZIP and > do >>>> everything else out of process. >>>> >>>> ---------------------------------------- >>>> From: "Walter Dexter" <wfdex...@gmail.com> >>>> Sent: Monday, October 14, 2013 7:21 PM >>>> To: "General discussion for Windows Installer XML toolset." >>>> <wix-users@lists.sourceforge.net> >>>> Subject: [WiX-users] What is the downside to this? >>>> >>>> I'm working on transitioning from Inno Setup to WiX due to corporate >>>> standards. >>>> >>>> I have some Inno that are fairly complex, running programs, setting > INI >>>> values, registry settings, etc. >>>> >>>> If I set the Inno to not make itself uninstallable, I could just > move >> the >>>> files out of it to an MSI, include the action-only Inno in the MSI, > and >>>> run >>>> it as a custom action. The MSI would install files and the embedded >> Inno >>>> would do the other stuff. >>>> >>>> Does that make any sense at all? Is it inspired or crazy? >>>> >>>> >>> >> > ---------------------------------------------------------------------------- > >>>> -- >>>> October Webinars: Code for Performance >>>> Free Intel webinars can help you accelerate application performance. >>>> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the >> most >>>> from >>>> the latest Intel processors and coprocessors. See abstracts and >> register >>>> >>>> >>> >> > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > > >>>> >>>> >>>> _______________________________________________ >>>> WiX-users mailing list >>>> WiX-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/wix-users >>>> >>>> >>>> >>>> >>> >> > ---------------------------------------------------------------------------- > -- >>>> October Webinars: Code for Performance >>>> Free Intel webinars can help you accelerate application performance. >>>> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the >> most >>>> from >>>> the latest Intel processors and coprocessors. See abstracts and >> register >>>> >>>> >>> >> > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > > >>>> _______________________________________________ >>>> WiX-users mailing list >>>> WiX-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/wix-users >>>> >>> >>> >> > ---------------------------------------------------------------------------- > -- >>> October Webinars: Code for Performance >>> Free Intel webinars can help you accelerate application performance. >>> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the > most >>> from >>> the latest Intel processors and coprocessors. See abstracts and > register >>> >>> >> > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > > >>> _______________________________________________ >>> WiX-users mailing list >>> WiX-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/wix-users >>> >>> >> >> > ---------------------------------------------------------------------------- > -- >> October Webinars: Code for Performance >> Free Intel webinars can help you accelerate application performance. >> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most >> from >> the latest Intel processors and coprocessors. See abstracts and register >> >> > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > > >> _______________________________________________ >> WiX-users mailing list >> WiX-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wix-users >> > ---------------------------------------------------------------------------- > -- > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > > > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users