Software Deployment Question

Setup.exe, Prerequisites, and Return Values using InstallShield...

08/18/2015 2330 views

Hi all,

This is posted over at Flexerasoftware as well, but maybe someone will see this here that does not frequent those boards.  Anyway...

I created a Win Form app that will check for some IIS requirements and launch the approproate utility to get the pieces in place if missing.  I started with a Win Form simply for testing purposes.  Instead of reinventing the wheel, I just adjusted the code in the form_load event to do all the lifting then exit gracefully so the form never shows if successful.

With a try/catch I simply display a message box with any exception encountered then... this.close().

So, I'm thinking that even if an exception is received, My wrapping Setup.exe will still receive success.  Is there a way I can return some value or the exception value, etc to the Setup.exe so it knows there was an issue?

If I need to create a different .exe of some sort, I can do that as well.

Any help guidance is appreciated!!

0 Comments   [ + ] Show comments


Community Chosen Answer

Is there a reason why your preliminaries can't be taken care of by Custom Action(s)?

As for the 3rd-party app, I'd just capture it so that I have an MSI. I'd also be tempted to offer it to the vendor. At a price, of course.
Answered 08/19/2015 by: VBScab
Red Belt

All Answers

If you declare a global return value, you can set this dependent on the exception caught... This assumes that the caller can interpret this...
Why not wrap the msi's in your own "win-forms" setup.exe? You could even "wrap" the installshield setup.exe in your own win-forms.exe ....

As you are a developer, you have so many options...
Answered 08/18/2015 by: Pressanykey
Red Belt


The app I'm designing the installation for is in its infancy so I'm sure there will be many changes and its not imperative that the return value is sent back to the InstallShield bootstraper.  I do display a message box with any exception so users will know there is an issue.

Creating my own wrapper is definitely an option.  There is another third party installation that will be part of this whole ball of wax.  There's some actions that need to be undertaken after this application is installed and there really isn't an easy way to do that unless I wrap everything.

I'm not quite sure how to structure the wrapper.  Is there a way to encapsulate all the required install packages into a single setup.exe or do most just have the wrapper .exe alongside the required installers in the same folder location (separate files)?  Can the install packages be added as bootstrap resrouces?

Thanks for the reply!!

Answered 08/18/2015 by: Superfreak3
2nd Degree Black Belt

Wow, questions and more questions....
First off you'd need to ensure that any "software" that needs to be installed, is provided as MSI's.
InstallShield does give the possibility to "chain" these, however, as you are a developer, you could do this yourself (look at the MSI SDK API, regarding chained MSI's). You'd need to ensure that the target machine has at least the windows installer version 4.0 or higher present plus any requirements of your wrapper / boot-strapper.
If you can ensure that everything is present as an MSI, you can do the UI via the win-forms wrapper, and fire off the msi's silently... (one after another, and if one fails, manually do a roll-back, de-installing the msi's that have been previously installed)
This is also possible (as I mentioned before) with InstallShield, but chained MSI's is difficult and there are specific requirements that must be met (especially if you plan to do your own UI).

You have a lot of reading to do...
MSI SDK (Chanined installs)
Ensure that your boot-strapper / wrapper can identify what pre-requisites are required
Ensure that your boot-strapper / wrapper can install the required pre-requisites
Ensure that your wrapper can install the MSI's (chained or pseudo-chained)

This is just scratching the surface... I take it you are looking to create a installation package for "end-users" and not a managed environment?
Perhaps EdT ot VBScab can add some input?
Answered 08/18/2015 by: Pressanykey
Red Belt


Yes, the install is for end-users.

I've played around with Chaining before and I don't really like it as I had varying results.  For one thing, our package is 64bit, but the third party install is 32 bit.  Chaining packages targeted for different architectures was bad from my experience.

At any rate, the third party installer is not offered as an .msi.  I believe we tried to get them to turn over their package in that format, but they didn't come through.

Answered 08/18/2015 by: Superfreak3
2nd Degree Black Belt


Well, I need to ensure IIS is in place (certain Role Services need to be installed) for our Web App to be constructed properly on the target system so I need to take care of that on the front end.

The prerequisite .exe is working fine for that part of it.  I also include the required .NET framework prereq and sequence that first and all looks good.  I was just wondering if I could get a return from that .exe, in addition to the message I display on exception.  I don't think the install should continue if the IIS stuff bombs.

The third party app I spoke of before will be another story to be tackled down the road a bit.

Answered 08/19/2015 by: Superfreak3
2nd Degree Black Belt

As a former regular in the Wise forums, you will of course be aware that there is a Wisescript add-on to the Installshield product that you could use to wrap all your installs into a single EXE.
Answered 08/20/2015 by: EdT
Red Belt

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