"The action must be scheduled between InstallInitialize and InstallFinalize." - but it is!
So you want a small custom action to run in the Execute Deferred sequence - maybe just to call CACLS.EXE on that folder, or something else, just tacked on the end of the installation.
You already know that you must place your deferred action between InstallInitialize and InstallFinalize. So you place your new custom action just before InstallFinalize in the 'MSI Script' section of Wise Installer Editor. But when you test your installation the installation fails with error 2762 (internal error, from the verbose log), then ultimately 1603.
What is going on?
Have a look at the InstallExecuteSequence table in Setup Editor. Sort the table in Sequence number order by clicking on the heading of the Sequence column, then go to right near the end to find your custom action.
What is the Sequence number for InstallFinalize? What is the Sequence number for your custom action? WHAT!! They're the same!
Ok this is odd, Wise Installer Editor has for some reason, assigned the same sequence number to your custom action as the InstallFinalize action. And obviously Windows Installer decided to run yours first.
Well luckily this is very easy to fix, just reduce your custom action sequence number down a few notches. It doesn't really matter what to, as long as it is higher that InstallInitialize and higher than its dependency: e.g. if your custom action permissions a folder that is created, it must have a sequence number higher than that of the CreateFolders action. (Incidentally, if you place your action just after CreateFolders, just double-check that Wise Installer Editor actually assigns a Sequence number higher than the CreateFolders action.)
Applications Packaging and Deployment for the ICT Support Team, Oxford University, UK.
[using Wise Package Studio 7.0 SP3 - 126.96.36.1995 - on Windows XP SP3]
[blog entry first published: http://msistuff.daz.uk.net/the-action-must-be-scheduled-between-installi]