Solved

InstallShield automatic script for uninstall no longer works

Posted on 2010-08-31
3
1,209 Views
Last Modified: 2013-11-14
I've been using InstallShield for years for doing an application install that is relatively straightforward.  The install works and hasn't changed much over the years.  Recently I noticed that the uninstall stopped working.  

When a user runs thru the "remove program" options in the Windows Control Panel it used to go thru whatever automatic script was created by InstallShield to delete all of the files that were installed during my installation (which is exactly what I want).  Now, instead of doing an uninstall the installer gets relaunched.  I'm sure the reasoning is so that a user can add/change/modify installation option.  But I don't need or want that.  I simply need it to do what it did before, which is to remove the application.

I'm assuming I set some option somewhere that caused this but I've searched all thru InstallShield options I could think of and I can't find what I might have set.

I'm running InstallShield 2008 and this is an InstallScript type project.

Anyone know what I might have tweaked that caused this to happen?

Note, though my installer is straightforward it is complicated enough that I'm not going to switch to another installer application so the "switch to installer ..." is not an option.

Thanks,
Mike
0
Comment
Question by:mlazear
  • 2
3 Comments
 
LVL 40

Expert Comment

by:Vadim Rapp
ID: 33575873
I would speculate that with time, you've got new updated installscript engine, which does not understand old command-line options (which would be not surprising at all given Installscript's track record throughout decades). To verify, find UninstallString for the package in question in the registry (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<find your package>), then try running it manually, or compare to some reference on today's installscript engine.

> I'm not going to switch to another installer application so the "switch to installer ..." is not an option.

How about switching to Basic MSI project within the same Installshield.
0
 

Author Comment

by:mlazear
ID: 33579251
In the registry I looked in HKLM\SOFTWARE\Microsoft\WIndows\CurrentVersion\Uninstall and was unable to find information about our application. (I went thru every entry and checked the data as well as searched on our company name).  

We do show up in the Control Panel, Remove Application so I know the information must be stored somewhere.

I figured the information must be somewhere in the registry so I searched for any data where my company is the Publisher and I found information about our app in:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\<big number>\InstallProperties
There is no uninstall information in this registry location.

I run on Windows 7.  I'm now doing testing on Windows XP (within a VM) to see if that acts differently.  On XP there is entries in the registry in the Uninstall section. This could be more of a Windows 7 issue.

Regarding switching to Basic MSI.  My installation is somewhat straightforward but still complicated enough.  It has about a dozen third party merge modules, custom scripts, multiple install options with some odd quirks that I'm not sure are handled by other installers.  Over the years it's probably taken 40+ hours to put it all together.  The thought of starting over and having to find all the potential problems with a new product or a new install "language" is just not appealing.  Especially when this all worked great in an earlier release.  If I had to start from scratch on an installer I probably would drop InstallShield because it's very expensive for my 1 or 2 application installs I need to write.  But that's a last resort option.
0
 

Accepted Solution

by:
mlazear earned 0 total points
ID: 33581878
Finally figure out what I had done. In ProcessBeforeDataMove I had replaced DeinstallStart() with MaintenanceStart(). I'm sure it was a test to see if i could allow a change to the installation rather than simply an uninstall. I must have gotten distracted and eventually checked in that change to source control. Putting DeinstallStart back in fixed the problem.

I did learn a few pieces of information while I was in the process:
Install Information/General Information/Project Properties has two fields with regard to how uninstall is show in Add/Remove programs: Maintenance Experience and Update Mode Supported. I'm using Standard and now using No for Update Mode Supported.

Install Information/General Information/Add or Remove Programs is all about uninstalling but for me had two interesting fields: Disable Change Button and Disable Remove Button.  I don't have a Change option so I set Disable Change Button to Yes.  Since I do want to remove the application I set Disable Remove Button to No.
Install Information/General Information/Product Properties - I read in my searches that some people had to change the Version and/or Product GUID to get their uninstaller to work.  That wasn't the case for me.
Install Information/General Information/String Tables/English(US) The last strings in my list are UNINST_DISPLAY_NAME and UNINST_KEY.  These can be changed in order to control what is shown in the Add/Remove Programs within Control Panel.
 
I've documented this in case someone else runs into similar issues, which could possibly be me again sometime in the future.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

One of the major drawbacks of deploying applications by GPO is the complete lack of any centralized reporting. After a normal deployment, there are two ways to find out if it was successful – by looking in the event log, and by looking in the log of…
Installations often have prerequisites, such as “Microsoft .Net framework is required for this product”. The usual implementation in MSI installations is system search for a particular registry setting representing the required prerequisite, followe…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now