cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
r_suire
Level 3

Custom action in merge module is not executed

I create a merge module containing a custom action

MSI Type Number : 1026
In-Script Execution : Deffered Execution
Executable Filename : \notepad.exe

And I create two rows in ModuleInstallExecuteSequence table

Action Sequence BaseAction After

notepad InstallFiles 1
InstallFiles 4000


After using this merge module in my main installer,
I can check the generated .msi with Orca

the InstallExecuteSequence Table contain the following row :

Action Sequence
notepad 4001

But when I execute this install notepad isn't launched

I can't find where i am missing something ...
Labels (1)
0 Kudos
(4) Replies
RobertDickau
Flexera Alumni

If you create an MSI log file at run time, is there any more information?
0 Kudos
r_suire
Level 3

MSI (s) (54:40) [09:42:46:566]: Doing action: InstallFiles
Action 09:42:46: InstallFiles. Copying new files
Action start 09:42:46: InstallFiles.
MSI (s) (54:40) [09:42:46:566]: Note: 1: 2235 2: 3: StreamRef_ 4: SELECT `Patch`.`File_`, `Patch`.`Header`, `Patch`.`Attributes`, `Patch`.`Sequence`, `Patch`.`StreamRef_` FROM `Patch` WHERE `Patch`.`File_` = ? AND `Patch`.`#_MsiActive`=? ORDER BY `Patch`.`Sequence`
MSI (s) (54:40) [09:42:46:566]: Note: 1: 2205 2: 3: MsiPatchOldAssemblyFile
MSI (s) (54:40) [09:42:46:566]: Note: 1: 2228 2: 3: MsiPatchOldAssemblyFile 4: SELECT `MsiPatchOldAssemblyFile`.`Assembly_` FROM `MsiPatchOldAssemblyFile` WHERE `MsiPatchOldAssemblyFile`.`File_` = ?
MSI (s) (54:40) [09:42:46:566]: Note: 1: 2205 2: 3: MsiSFCBypass
MSI (s) (54:40) [09:42:46:566]: Note: 1: 2228 2: 3: MsiSFCBypass 4: SELECT `File_` FROM `MsiSFCBypass` WHERE `File_` = ?
MSI (s) (54:40) [09:42:46:566]: Note: 1: 2205 2: 3: MsiPatchHeaders
MSI (s) (54:40) [09:42:46:566]: Note: 1: 2228 2: 3: MsiPatchHeaders 4: SELECT `Header` FROM `MsiPatchHeaders` WHERE `StreamRef` = ?
InstallFiles: File: Copying new files, Directory: , Size:
MSI (s) (54:40) [09:42:46:582]: Note: 1: 2205 2: 3: PatchPackage
Action ended 09:42:46: InstallFiles. Return value 1.
MSI (s) (54:40) [09:42:46:582]: Doing action: notepad
Action 09:42:46: notepad.
Action start 09:42:46: notepad.
Action ended 09:42:46: notepad. Return value 0.



Any suggestion ?
0 Kudos
r_suire
Level 3

Ok, I modified the ModuleInstallExecuteSequence table in my merge module

as :

Action BaseAction
notepad.C58078B8_8B68_455A_969E_268E19D523F4 InstallFiles


with C58078B8_8B68_455A_969E_268E19D523F4 being the module ID GUID.
In my understand main install can locate the right custom action (assume we have two custom actions with the same name in differents merge modules)
in the specified merge module.

it works now
0 Kudos
RobertDickau
Flexera Alumni

Yes, quite right; KB article Q112907, "HOWTO: Insert a Custom Action into a Merge Module" mentions the need for the module ID GUID.

Thanks for posting the follow-up...
0 Kudos