You don't have to write a ton of scripts to achieve the objectives you have in mind. In fact, you can achieve all of those things with just a few If...Else...End's here and there around your existing runtimes.
For example, if you want to block pre-req checks on an uninstall, just test whether MAINTENANCE is TRUE or not in your prereq block. Its not a ton of script - just two lines of code around the entire block.
However, as I am sure you will find out as you start customizing the scripts, it is VERY difficult to come up with a GLOBAL solution that works for ALL customers in ALL scenarios. This is the REAL workload in what you are referring to as "a ton of scripting".
The scripting required actually is minimal. Here, our MSIcode helps you offer the most flexibility for your customers. MSIcode is our offering to you in reducing your workload as far as possible.
Unfortunately, the problem is coming up with the GLOBAL LOGIC that works in all scenarios with just a single click. I do hear you - and I would like to still try and offer a GLOBAL solution that would work for ALL customers in ALL scenarios. Now, in such consideration, please try to answer the questions below if you have any well-thought solutions:
1. 32 bit - 64 bit Issues:
a. Bitness Requirements:
Some 32 bit runtimes can install on a 64 bit OS as-is. Some 32 but runtimes can NOT be installed on a 64 bit OS at-all. Of course, all 64 bit runtimes can only be installed on 64 bit OS's.
b. Application Requirements:
An additional complication however is that some apps will NEED the 32 bit version of a runtime even on a 64 bit OS, depending on the bitness of the application. We cannot make any assumptions on application bitness when preparing our runtimes.
c. Payload Requirements:
A customer may want just the 32 bit of a runtime and never the 64 bit version of it, or vice versa, due to a need to optimize the payload size with a single build option. Therefore, a single check-box to "magically" install the correct bit runtime will often end up doubling payload size.
Note that our partial web deploy already covers web downloading of just the required bits - it seems that you might not be aware of this presently.
2. Maintenance Mode Issues:
a. Application Requirements:
A custom application may be required to run at uninstall time. In this scenario if the application requirements have already been removed, this will of course fail. The clean-uninstall will therefore also fail.
b. Server Requirements:
Similar to running a custom application, a server script may need to run, say on an instance of SQL Server, to do some clean-up work, or any other kind of processing. This will again break the clean-uninstall.
c. Shared Technologies:
It would of course break tons of other applications already on the system if we force the removal of prereqs at uninstall time. For example, removing any version of .NET etc. would just give your application a very bad name!
Note that our current design philosophy has been to provide the safest install and uninstall process with the highest possible success rates on both. We have tried to isolate you from as much of the manual coding as possible, except where we believe YOU DO NEED to make a decision based on your requirements (as reviewed above).
Edit: You indicate that you want to get your application off of the target computer at all costs. If this is just deleting files, this can be achieved by just deleting your application's folders (as most users do, and eventually end up regretting). Also, you can force the uninstallation of any existing Install
Aware setup, bypassing the prereq block, using this command line:
Code: Select all
setup.exe /s MODIFY=FALSE REMOVE=TRUE PREREQ=FALSE
With a standard Install
Aware setup script (both native and MSI engines), this will have the net effect of forcibly skipping the prereq block, achieving your objective. You could even add one line of "
Run Program" to your own uninstall routine if you detect/suspect any issues with prereqs to do this programmatically.
Again, Install
Aware is so versatile - we really do give you all the tools you need to achieve anything you want.
Looking forward to your feedback all the same.