Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio
All postings are provided AS IS
with no warranties, and confer no rights. Additionally, views expressed
herein are my own and not those of my employer, Microsoft.
Steven Bone posted the first of a series of articles about how Windows Installer custom actions work and how to create and debug them. You can click on the link to read Part 1 - Custom Action Types and Sequences.
This article describes how to configure the columns of the custom action table in an MSI, when to use immediate and deferred custom action types, how to handle rollback, and when to use the various custom action flags, options and conditions.
When using Windows Installer to create a setup, you can author most necessary actions using the standard MSI tables. However, there are some types of actions that are not supported using native MSI tables (such as the list I posted a while back). Because of this, using custom actions in your MSI will sometimes be necessary. Building a setup package is an integral part of the software development process, and the same level of care should be put into planning and designing the setup and deployment for your software.
Therefore, I strongly encourage you to read through this article (and the follow-up articles he will be posting in the future about writing custom action code) if you do any kind of setup development or testing work.
I also wanted to point out that there is a set of commonly needed custom actions that are published with the WiX toolset, and they can be easily incorporated into a setup package without needing to write any additional code. If you are writing an MSI-based setup I encourage you to take a look at WiX as well.