Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Merge Module deferred custom exe action condition


2 replies to this topic

standre

standre
  • Members
  • 5 posts

Posted 03 August 2006 - 09:20

A feature's merge module has a deferred custom action to run an executable 'installed with product'. This shall only be done if the feature is installed. So there is a condition 'Not Installed' inside the ModuleInstallExecuteSequence table.

Nevertheless, if the feature is deselected during setup, the installation exits with error 2753.

Trying to run the exe as 'path referencing a directory' with 'Working directory' = INSTALLDIR and 'Filename & command' = executable name does not do anything, independend of the module's installation status.

The log says:

MSI (s) (B8:F0) [10:10:45:890]: Executing op: ActionStart(Name=myexe.3415C1AE_0BE3_4D4F_9320_A2A35460C8FC,,)
MSI (s) (B8:F0) [10:10:45:890]: Executing op: CustomActionSchedule(Action=myexe.3415C1AE_0BE3_4D4F_9320_A2A35460C8FC,ActionType=1250,Source=C:\Program Files\Company\Product\,Target=my.exe,)

Platform: IS 10.5

Thanks for any hint how to correct or work around this problem.

standre

standre
  • Members
  • 5 posts

Posted 03 August 2006 - 10:27

Solved.

As directory table based exe did not work, I used property based.

Merge Module Custom Actions:

'New Set Property' MySetExecutable
sets property 'EXE' to '[INSTALLDIR]my.exe'
Synchronous
Immediate execution

'New Exe / Path in property' MyRunExe
runs executable from property 'EXE'
Asynchronous
Deferred execution

ModuleInstallExecuteSequence:

MySetExecutable
After InstallInitialize
Condition: NOT REMOVE

MySetExecutable
Before InstallFinalize
Condition: NOT REMOVE

Now my.exe is run when installed during the first run of the setup, or installed later. If not selected for installation or if deinstalled, nothing unexpected happens.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 August 2006 - 17:00

Properties like Installed and REMOVE are global for the whole package. So 'Not Installed' is true for a first time install, regardless of feature selection. REMOVE is true for any install where a feature is being removed. This micht be a full uninstall, or just some feature being unselected in Modify mode. Some feature means this could be any feature, not just the feature to which your merge module is connected.
You may get better results by basing your conditions on install and action states of a component in your module (see information at the end of help topic "conditional statement syntax")