Wise and InstallShield - incompatible merge modules?

H

Howard

I have come across a fairly serious problem when creating merge
modules using Wise. I've searched the web and newsgroups for info, but
haven't found anything relevant. I'd welcome any info from people
who've come across this issue.

The problem is that when the Wise-generated merge module is used in an
InstallShield installer, the files in the merge module do not go to
the correct directory. When the same merge module is used in a Wise
installer, the files go to the right place (as you'd expect).

Wise says that when creating the merge module, the files should go in
the folder named "Application". At install time, files in this folder
will end up in the chosen install location (e.g. C:\Program Files\My
App). I have created a merge module with files destined for a
bin\i386-win32 subdirectory, so I create the necessary folders
relative to the "Application" folder, and put the files in place.

When such a merge module is used in a Wise installer, things are fine,
and the files end up in e.g. C:\Program Files\My App\bin\i386-win32.
The problem comes when InstallShield is used with the Wise-created
merge module. In this case, the files end up in C:\Program Files\My
App\Application\bin\i386-win32.

I was surprised to find no reference on the web/newsgroups to other
people who have seen this problem. Has anyone come across this? Any
thoughts on a fix?

I have reproduced this behaviour on up-to-date demo versions (Wise for
Windows professional 6.0 and InstallShield X Pro 10). Interestingly,
if the merge module is created using InstallShield, the files end up
in the correct place whichever software package is used with the merge
module. So it looks as though it is definitely Wise that is causing
the problem.

I also ran an Orca merge module validation on both the Wise and IS
merge modules. Wise generated 37 errors, but IS didn't give any
errors.

This is a major problem for our software development. I've contacted
Wise but they have not yet replied with anything useful. It seems that
the only way to guarantee correct merge module behaviour is to use
InstallShield rather than Wise to create the merge module.

Any help or info on this would be much appreciated.

Howard
 
G

Guest

I guess the reason is that Wise uses TARGETDIR as destination property for
the files, while InstallShield names the property INSTALLDIR. Did you specify
the merge module destination in InstallShield (right click the module)? As a
workaround you could have a custom action that sets TARGETDIR to the value of
[INSTALLDIR].

--
Stefan Krueger
Microsoft Windows Installer MVP

Windows Installer FAQ
www.msifaq.com - www.msifaq.de

InstallSite - Resources for Setup Developers
www.installsite.org
www.installsite.de
 
H

Howard

Stefan Krueger said:
I guess the reason is that Wise uses TARGETDIR as destination property for
the files, while InstallShield names the property INSTALLDIR. Did you specify
the merge module destination in InstallShield (right click the module)? As a
workaround you could have a custom action that sets TARGETDIR to the value of
[INSTALLDIR].

Thanks for your reply.

I didn't specify a particular destination for the merge module in the
InstallShield project, I left this at the default value which is
INSTALLDIR.

One other thing I've tried is to create a nominally identical merge
module with both Wise and IS. The merge module had two files in a
bin/i386-win32 directory and two in a cfg directory (directories
relative to install location). I then used Orca to examine the tables
in both versions of the merge module. There's one difference in the
directory table that seems significant. The entries are:

Directory, Directory_Parent, DefaultDir
------------------------------------------------
IS: TARGETDIR, , SourceDir
Wise: TARGETDIR, , SourceDir

IS: INSTALLDIR.E46C..., TARGETDIR, .
Wise: INSTALLDIR.4B20..., TARGETDIR, APPLIC~1|Application

IS: BIN.E46C..., INSTALLDIR.E46C..., bin
Wise: bin.4B20..., INSTALLDIR.4B20..., bin

IS: CFG.E46C..., INSTALLDIR.E46C..., cfg
Wise: cfg.4B20..., INSTALLDIR.4B20..., cfg

IS: I386_WIN32.E46C..., BIN.E46C..., I386-W~1|i386-win32
Wise: i386win32.4B20..., bin.4B20..., I386-W~1|i386-win32

4 of the 5 above look pretty much equivalent, but the second one for
INSTALLDIR seems to indicate a DefaultDir of TARGETDIR for IS, but a
default of TARGETDIR/Application for Wise. This matches what I've
observed - am I interpreting the tables correctly?

I will try editing the INSTALLDIR table entry for the Wise merge
module to see if this fixes the problem when it is used in and IS
project.

Howard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top