View Full Version : IS makes assumptions re: Merge Modules

08-05-2008, 03:09 PM
I have a merge module laying around from another project. It contains some binary files that happen to also be dependencies of one of the key file executables in a component of a different project.

So why does IS assume that it can include that merge module? If I wanted the merge module, I'd include it myself. I want the component to do a .NET dependency scan, and all of the files that it needs are available. It has no problem doing this as long as that merge module isn't laying around.

It is a real problem as extra files in the merge module are being installed and being installed to the wrong target folder.

How do I get IS to not reference a merge module if I did not explicitly include it?

Christopher Painter
08-05-2008, 09:38 PM
Are you sure that merge module doesn't have a ModuleDependency entry? InstallShield will walk the tree brining in these dependencies.

Also merge modules are consuemd atomically. If MM1.C1 has a dependency on MM2.C2 but not MM2.C3 then C2 and C3 need to be in different modules.

Sorry, this gets ugly fast. You might want to consider package chaining instead.

08-06-2008, 09:59 AM
I think Alfetta159 is asking about when dependencies of files that are included in the project, and scanned at build, are found in a merge module we'll pull in the merge module instead of the individual file. This can be tweaked or overridden in two ways:
1) Tools > Options > Merge Modules - this allows some stricter matching of the file, which may be enough to break the merge module inclusion in certain scenarios
2) settings.xml (ISINSTALLDIR\Support\0409 folder) - there's an MM_FilesExclusion element which can be populated with merge module IDs and filenames to ignore. I'm fairly certain this should work, but I can't remember right now whether it's applicable to the component wizard when adding files, dependencies at build, or (hopefully) both.

08-06-2008, 04:19 PM
We have a similar situation and ended up setting ".NET Scan at Build" property to "Properties Only" for all components to get around it.

The downside is that dependencies are no longer automatically added and need to manually run the Dependency Scanners from time to time to make sure not missing anything other than the unwanted merge modules.

FYI - The work around of checking the "Matching files must have the same destination" setting under Tools --> Options --> Merge Modules did not appear to solve it even after restarting InstallShield 2009. Didn't try the xml change mentioned.