Hi guys, I am a newbie to application packaging so hopefully someone can assist me.

Firstly the environment I have been testing in is Windows 7 32 bit and 64 bit.

I have two installshield setup.exe files for two major versions of the same piece of software.

If I install the first one then the second one it works fine, ie as it is a major version upgrade it successfully removes the old one and then installs the new one.

I want to use MSI's for the logging capabilities and to keep to a standard where I work.

I have extacted the first MSI and can install it after editing to make the  ISSETUPDRIVEN equal to 1.

Then it looks ok.

When I install the second MSI it looks ok, says its removing the old one and installing the new one etc.

When I start the application it also runs the new version.

The problem is, only when using the two MSI's when I look in Programs and Features the old one still shows up.

When I used the Installshield files, it did not show up.

Question, how do I tell what is going on differently from the Installshield file compared to the extracted MSI.

Thanks and I hope this question is clear as I may not be using the correct terminology etc.










2 Comments   [ - ] Hide Comments


  • Hello,

    You can check the uninstall registry and looking for the GUID of the two msi.
    If there are not , you wouldn't see the application or upgrade on "Program and Features"



    If the GUID are present, it could be the property ARPSYSTEMCOMPONENT set to 1 for the second msi.

    i hope this gonna help you.
  • Ok cheers, for that. How come though the installshield setp.exe removes it but the MSI doesn not. How and where do I compare them? I thought the MSI does the same thing?
Please log in to comment

Answer this question or Comment on this question for clarity



Add this in your registry:

 Windows Registry Editor Version 5.00


And when you will run the setup.exe a log will be created in %TEMP% folder for each msi installed from this setup.exe. Save the logs and after that install the extracted msi files manually with log options. Compare the logs and find which properties are different.

Answered 07/03/2013 by: terebent
Second Degree Brown Belt

  • Whenever using MSIs extracted from EXEs, it's important to perform what's called a "gap capture" so that you can tell if the EXE does anything supplemental to the MSI. Lots of vendors are too stupid to work out that most operations can be done in the MSI but, because "it's always been done that way", they don't bother.

    So.. gap capture...
    - Install your MSI
    - Rename the 'Uninstall' registry branch so that Windows Installer thinks the product is not installed
    - Start your capture
    - Run the EXE and ensure that you choose the same options as in step 1
    - Close the capture

    You then incorporate any *significant* additions or deletions in your MSI.
  • Cheers guys, will try as you suggested and let you know how I go. Thanks
  • When you say capture, do you mean like with Installshield or similar as I have only been using InstEd. ie so you capture any changes that occur on the PC. I don't believe InstEd can do that can it?
  • you can use AdminStudio or any other tool like : http://www.itninja.com/community/dell-kace-appdeploy-repackager
  • Sorry if this is a basic question but I understand your logic however I have two setup.exe files and two MSI files. We will call them setup1.exe and setup2.exe and msi1 and msi2.

    Setup1 is a major version and Setup 2 is a major version, same with the MSI files.

    If I install setup1 it correctly shows in programs and features. When i run setup2 it uninstalls the first one and then installs correctly. In programs and features it only shows the second one and this is all good.

    When I run the MSI files after running MSI2 it seems to uninstall the first one but in Programs and Features it still displays the first one and the second one, although it does seem to have removed the files.

    If I need to run the capture how to I go about it.

    Do i install MSI1 then run capture1, then install setup2.exe and run another capture2. At this stage, it will all be good, then somehow I compare the captures?

    Then do I start over, install MS1, run capture3, then run MSI2 and run a capture4.

    Then to achieve what I want do I compare Capture4 and Capture2.

    Sorry if this is convoluted but I am trying to understand it all.


    • The only logic you're interested in is that which occurs when Setup2.EXE is run so:
      - Run Setup1.EXE
      - Run Setup2.MSI
      - Rename the 'Uninstall' registry branch so that Windows Installer thinks the product is not installed
      - Start your capture
      - Run Setup2.EXE and ensure that you choose the same options as in step 1
      - Close the capture

      You don't need IS or anything major for the capture, since the changes are (hopefully) going to be minimal. I use InstallWatch or InControl (although the latter is hard to find these days).

      BTW, I *really* hope you're doing all this with VMs! I hate to think of you having to rebuild a machine evry time you test!
  • Cheers, I will try this out tomorrow thanks heaps the only version I can find of installwatch is v 2.5. is that the one you use or do you have links to these two programs? cheers
  • yeah, using VDI and switching to VM Ware Workstation and using snapshots etc, if I get time this afternoon at work I will try your suggestions. Thanks, just needing possible links to the software that you have suggested. Cheers
Please log in to comment