/build/static/layout/Breadcrumb_cap_w.png

Msi wrapped within an exe

Help!

I am trying to package an app. I thought it was going to be nice 'n easy to start with. Just one exe that they run silently here.
The thing is, this isn't just any exe.

When you run the exe (not silently), it extracts a file to the Temp dir called Vcredist_x86.exe that in turn extracts an msi called vcredist.msi (this is Microsoft Visual C++ redistributable) and a cab file called vcredis1.cab and they all delete themselves as quickly as they are created. I somehow managed to grab hold of them though

The first exe (InvolveEMV.exe) installs some files aswell as extracting this Vcredist_x86 file.
I don't want to use setup capture because of the fact that there is an msi present in the install so what i was going to do was just run the exe silently in a Custom Action through a blank msi - ya?

No - When I do this the install cr*ps out because it's trying to run an msi during the install that is part of my "silent exe". And you can't run one msi while the other is running. I've tried putting it as a Commit Execution, Deferred in System Context, but none seem to work, they all say that they can't run the second msi basically.

Any ideas how I'd do this?

Cheers,
Mark

1 Comment   [ + ] Show comment
  • YOU DON'T NEED TO DO ANY THING TOLD ABOVE.

    Just use 7Zip to extract VCRedist.msi from vcredist_x86.exe. Its very simple. Very very simple. No Command prompt or run commands. No searching the required msi from temp folders.

    And thus you get your required msi file to resolve the above stated problems. - zopfan 9 years ago

Answers (5)

Posted by: zopfan 9 years ago
White Belt
0
YOU DON'T NEED TO DO ANY THING TOLD ABOVE.

Just use 7Zip to extract VCRedist.msi from vcredist_x86.exe. Its very simple. Very very simple. No Command prompt or run commands. No searching the required msi from temp folders.

And thus you get your required msi file to resolve the above stated problems.

Posted by: gmorgan618 18 years ago
Blue Belt
0
Mark,

Depending on how well you know MSI's and how comfortable you are editting them - you may want to check out Nested MSI Calls ... This will allow you to run a MSI from within an MSI ...

To avoid multiple writes to one location the MSI engine will only allow one MSI installation at a time.

Hopefully this page is still around but it will walk you through the steps of how to Nest an MSI....

http://support.microsoft.com/default.aspx?scid=kb;en-us;306439


I would recommend running your first EXE and grabbing the MSI and cab (and any mst's) that are extracted -- usually to %USERPROFILE%\LocalSettings\Temp

Edit the MSI which you would like to run last and add the other MSI('s) to the sequence. Remember that all property's are inherted by the nested MSI's so if you run the MSI with a /qb switch all nested MSI will also be run as qb ... same for ALLUSERS=1 or REINSTALL=ALL

Good Luck
Posted by: aogilmor 18 years ago
9th Degree Black Belt
0
sometimes it's easier to just use wise script for something like that. it's very easy to feed it the vendor EXE and command line, and it's not bothered by running the MSI install.

If you don't have wise script (or some other tool to make a small setup EXE) you can use a VBScript.
Posted by: Foleymon 18 years ago
Orange Senior Belt
0
Vcredist.exe supports the following command-line switches:
no switches = non-quiet mode, displays progress bar and reboot prompt
/q = semi-quiet mode, displays reboot message, and no progress bar
/q /r:n = no reboot message or progress bar

This is from Microsoft q259403
Posted by: EdT 9 years ago
Red Belt
0
Even easier - if you are installing on a clean test machine, you can get information about the runtime from add/remove programs and just download it from Microsoft. In a corporate environment I would suggest that Visual C++ runtimes should be part of the basic operating system application payload as they are so often used.  Commercial installers often deploy runtimes from the UI sequence of an MSI as the msiexec installation thread is not yet committed to installing the running MSI, but this is not possible if doing a silent install.  I would caution against using any form of nested MSI install as this ties the nested MSI to the parent MSI forever and it causes the nested MSI to be removed when the parent is removed. Any updates to the nested MSI also need to be done via the parent MSI.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ