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

Comments

  • 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.
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.

Answers

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
Answered 08/01/2006 by: gmorgan618
Blue Belt

Please log in to comment
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.
Answered 08/01/2006 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
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
Answered 08/01/2006 by: Foleymon
Orange Senior Belt

Please log in to comment
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.

Answered 12/16/2015 by: zopfan
White Belt

Please log in to comment
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.
Answered 12/20/2015 by: EdT
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity