Hey guys, it's been a while since I've been on here and could use some help. I have spent the weekend trying to package an application called Chemdraw and have found a few ways I can do this, but since it's for work I need to make sure that it's right. Chemdraw comes as a single setup.exe file and after dissecting the install process it seems to go like this:

1) Run -> Extract into temp directory. Temp consists of chemdraw.msi and isscript1050.msi.
Note: If you try to run the chemdraw.msi manually it gives a popup with 1 in the dialog. From the authors site they tell me exactly that. It states that you have to use switches. If you use "msiexec /i chemdraw.msi /qb!" it tells me that InstallDriver needs to be installed.
2) Install isscript.1050.msi adds the service InstallDriver Table.
3) Checks for .net Framework 1.1. ( will give an error if it is not installed. Needs to be on the machine first)
4) Install Chemdraw.msi normally

I tried using Wise to repackage the application, but I get an error every time as soon as I launch the new msi. I know you're not supposed to repackage an msi, but I'm still a newb at this stuff. I then thought use a response file, so I ran the setup /r to get the response file. I then installed with "setup /s /f1"c:\setup.iss"" and it works great except for that I still see a minimized dialog. If I go this method then I would just use Autoit to check to for .net and if not installed run the installer and then run the setup.exe. I actually have to replace 4 files after the install and add 1 registry key so Auotit works well for that as well.
Like I said this works fine, but ideally I would like to just repackage the application. When I tried to package the application I got merge module notifcations and I have to admit to this day I have no idea what are merge modules :) I seem to think that they are addins to other applications like if the application wants to add an icon to integrate with office or something. I read a post on here of how you can make the Installshield driver into a merged module, but that's out of my skillset. I could really use some help and would appreciate any help you guys could give me. If you need any more information let me know. Thanks.
0 Comments   [ - ] Hide Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
Answer this question or Comment on this question for clarity


Do NOT re-package. You don't need to.

InstallShield (hereinafter 'IS') MSIs can be problematic if the vendor uses - as some do - custom actions to do the actual installation. These are easy to identify, as the File table will probably be empty. You can still use the MSI, though, it's simply that you'll need to execute the MSI with the InstallShield engine/driver first. There may still be a 'gotcha' there, though, but again, relatively easy to circumvent. Some vendors put a check in the MSI to ensure that it gets executed by the setup stub. That mechanism 'internally' sets a property called "ISSETUPDRIVEN" to '1' so all you need to is create that property and populate it with a value of '1'. Easy.

If the MSI is a 'proper' MSI, there may well still be IS-specific function calls but these can sometime be commented-out and not affect the MSI's execution. I normally comment-out by setting an impossible-to-meet condition for the action. I normally use '0=1' which is a slightly impossible condition! :) You may still need to set the ISSETUPDRIVEN property for these MSIs, too.

As for the dialog with '1' in it, I imagine that this is some error-trapping left in by the packager in the User Interface sequence. You can find it simply enough by stepping through the MSI in your packaging tool's (which is...?) debugger.

Lastly, all the changes should be applied by using a transform. NEVER directly edit a vendor MSI.
Answered 01/19/2009 by: VBScab
Red Belt

Please log in to comment