cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
mahdiprog
Level 4

Installscript in Merge Module

Hi
I tried to create a merge module that installs IIS.
so in the merge module I added IIS required files to Files section to copy them to Temp folder.
Then I wrote a script that install IIS from these files.
I created a custom action for executing this script but it seems doesn't execute the script.
I tried "Immediate Execution" and "Commit Execution" but it still doesn't work.
Any Idea?
Labels (1)
0 Kudos
(13) Replies
Not applicable

Merge module is for shared component. Are you trying to install any shared files?
0 Kudos
mahdiprog
Level 4

lambertpandian wrote:
Merge module is for shared component. Are you trying to install any shared files?


Thanks for reply
I just try to create a installer that can be used in other installers without uninstall issue (like nested msi).
And I doesn't get what you mean of "shared".
0 Kudos
Not applicable

Hi,

As per MSDN,
Merge modules provide a standard method by which developers deliver shared Windows Installer components and setup logic to their applications. Merge modules are used to deliver shared code, files, resources, registry entries, and setup logic to applications as a single compound file.

And nested MSI is adding another MSI into parent MSI. Adding MSI may contain a merge module. It has an advantage like we can give an update without disturb the parent

I just try figure out the situation 🙂 , if you can please specific about why do you use copy script? rather directly specify the target in component design.
0 Kudos
mahdiprog
Level 4

lambertpandian wrote:
Hi,

As per MSDN,

And nested MSI is adding another MSI into parent MSI. Adding MSI may contain a merge module. It has an advantage like we can give an update without disturb the parent

I just try figure out the situation 🙂 , if you can please specific about why do you use copy script? rather directly specify the target in component design.


Thanks for your attention
I doesn't copy file via script but install IIS via it (by using sysocmgr command)
and I use merge module to create reusable installer package that can be used by other product installers.
Is there a limitation of using installscripts in Merge Module because it seems not execute it anyway.
0 Kudos
Not applicable

I understand you are creating an installscript in mergemodule. (Forgive me if I am wrong)

You can add that into a customaction of the mergemodule, and insert that into parent sequence.
0 Kudos
mahdiprog
Level 4

lambertpandian wrote:
I understand you are creating an installscript in mergemodule. (Forgive me if I am wrong)

You can add that into a customaction of the mergemodule, and insert that into parent sequence.


My problem is in the merge module I added it into custom action but it doesn't run. and as I mentioned before I want to to act independently that with adding it's installscript to custom action of parent installer, I'll lose that independence.
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

To ensure a custom action in a merge module is sequenced in an MSI consuming the module, the ModuleInstallExecuteSequence or ModuleInstallUISequence tables need to be populated with sequencing information regarding the custom action. Otherwise, as lambertpandian mentioned, the action would need to be sequenced manually in the MSI using the merge module.
0 Kudos
mahdiprog
Level 4

joshstechnij wrote:
To ensure a custom action in a merge module is sequenced in an MSI consuming the module, the ModuleInstallExecuteSequence or ModuleInstallUISequence tables need to be populated with sequencing information regarding the custom action. Otherwise, as lambertpandian mentioned, the action would need to be sequenced manually in the MSI using the merge module.


So isn't there a way to have a completely independent installer module (or object or any other title) that can act as a reusable object (except msi that has problems on uninstalling)?
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

As I mentioned in my previous post, you can use the ModuleInstallExecuteSequence or ModuleInstallUISequence tables in the merge module to provide for automatic sequencing of custom actions in the merge module when it is consumed in an MSI package. Besides properly populating these tables, there are no other methods available.
0 Kudos
mahdiprog
Level 4

OK
I created a custom action in the merge module for executing install script function;
I set "In-Script Execution" property to "Immediate Execution".
In the installer I checked this merge module, so how can I use custom action of merge module?
0 Kudos
DebbieL
Level 17

The following help topic explains how to add actions to a sequence. The instructions apply to actions that are in the installation project itself, or to any actions that are in the project's merge modules.
Inserting Actions into Sequences

Note that if your custom action modifies the target system, you might need to select Deferred in System Context for the custom action's In-Script Execution setting.
0 Kudos
mahdiprog
Level 4

I added two records in ModuleInstallExecuteSequence table like this:
Action Sequence BaseAction After
InstallFiles 4000
InstallIIS.47BEA03B_67F5_490D_871B_99DDB05B27B6 InstallFiles 1

I wanna execute custom action after copying files in merge module so I use "InstallFiles" sequence.
then I added this merge module in my test project but custum action doesn't created automatically.
0 Kudos
mahdiprog
Level 4

No Answer?
0 Kudos