cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
geedunn
Level 3

Uninstall problem after migrating from InstallShield 10

My project is InstallScript only and was created using InstallShield 10 SP1. I recently upgraded to IS2008 and the conversion seems to have gone well with one exception. After uninstalling and then rebooting an error dialog appears when you logon to the system:

---------------------------
C:\Program Files\InstallShield Installation Information\{PRODUCT_GUID}\setup.exe
---------------------------
Windows cannot find 'C:\Program Files\InstallShield Installation Information\{PRODUCT_GUID}\setup.exe'. Make sure you typed the name correctly, and then try again. To search for a file, click the Start button, and then click Search.
---------------------------
OK
---------------------------


This happens the first time only, and the path to this setup.exe was removed during the uninstall so it is supposed to be gone. I've spent a lot of time on this and I can't figure out why the system is trying to launch the setup.exe after rebooting.

It's not critical but is a problem nevertheless. Another thing to note is that the uninstall is REMOVEONLY, i.e., there is no maintenance mode once you click on the Uninstall button in Add/Remove Programs. Also note that a reboot is required because we are uninstalling a kernel driver.

Has anyone else seen a problem like this?

Thanks,
gee
Labels (1)
0 Kudos
(13) Replies
rfitzpat
Level 4

Gee,
I also have this problem with one of my installs. All of my installs are IS10.5 migrated to IS2008. All are installscript types. Most do not require a reboot. One does require a reboot, an Installshield installscript that was migrated from IS6 to IS10.5, then to IS2008.
I have been ignoring the issue, because I was blaming it on my slow PC I have to test on. Now our Cert department is finding the problem too. Seems like a timing issue where InstallShield does not finish before the OS shuts down. I will start working on the problem tomorrow.
Robert
0 Kudos
geedunn
Level 3

A timing issue is an interesting possibility. If it is then I should be able to prove that but selecting to reboot later rather than at the end of the install. That will give IS time to close properly before the reboot.

This gives me a new approach to the problem, although it is sounding like an IS bug.

Thanks,
Gee
0 Kudos
rfitzpat
Level 4

Gee,
My tester did use the delay reboot option so she could close her email, and she still received the error.
I just tested another of my installs that normally does not need to be rebooted, but when I cause it to reboot, but holding open an exe, I get the error. Darn. I need to ship this install soon.
0 Kudos
geedunn
Level 3

rfitzpat,

I discovered why it's trying to launch the setup after rebooting. At some point either before the setup has completed or after the following value is added to the registry:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
"InstallShieldSetup"="\"C:\\Program Files\\InstallShield Installation Information\\{PRODUCT_GUID}\\setup.exe\" -reboot\"C:\\Program Files\\InstallShield Installation Information\\{PRODUCT_GUID}\\reboot.ini\""

If this key can be deleted by the setup (as a last step) we should be good to go.

Gee
0 Kudos
geedunn
Level 3

Unfortunately, the value is added to the registry AFTER the setup is completed so it cannot be easily deleted by the setup.

The good news is that there is a solution in this post (although I haven't tried it yet):
http://community.installshield.com/showpost.php?p=396717&postcount=1

I searched for RunOne and InstallShieldSetup to find it.

In the last line in the OnEnd function of the script set the following:
BATCH_INSTALL=FALSE ;

I hope this helps.
0 Kudos
rfitzpat
Level 4

Gee,
Yes, I found the same key last night. I am afraid setting BATCH_INSTALL=FALSE; will cause the install not to request the user to reboot, which one of my install does require. Just this reboot.ini file is not on the PC anymore and is unneeded.
Why does InstallShield think it needs to add this key?
Robert
0 Kudos
esiemiat
Level 9

I reported this bug back in August, and support created work order IOC-000063184. To date there has been no resolution to this issue.


The only workaround was to add the following code to your project. It disables the reboot functionality for uninstalls only so the key is not created, but ironically does not prevent the restart of the system if the user chose to do so.


function OnEnd()
begin
if ((REMOVEALLMODE != 0) && (BATCH_INSTALL)) then
BATCH_INSTALL = FALSE;
endif;
END;


Hopefully InstallShield will fix this in an upcoming SP, if not I will report it again during the next beta if need be.
0 Kudos
geedunn
Level 3

rfitzpat wrote:
Gee,
Yes, I found the same key last night. I am afraid setting BATCH_INSTALL=FALSE; will cause the install not to request the user to reboot, which one of my install does require. Just this reboot.ini file is not on the PC anymore and is unneeded.
Why does InstallShield think it needs to add this key?
Robert


I had the same thing happen, but I forced a reboot by ensuring that the reboot dialog came up, and it worked.

BATCH_INSTALL=FALSE ;

SdFinishReboot( SdLoadString(IFX_SDFINISH_REMOVE_TITLE), SdLoadString(IFX_SDFINISH_REMOVE_MSG2), SYS_BOOTMACHINE, "", 0 );
0 Kudos
geedunn
Level 3

Thanks, Eric. I'm glad that Macrosion is aware of the issue. Hopefully there will be a fix in the next service pack.


esiemiat wrote:
I reported this bug back in August, and support created work order IOC-000063184. To date there has been no resolution to this issue.


The only workaround was to add the following code to your project. It disables the reboot functionality for uninstalls only so the key is not created, but ironically does not prevent the restart of the system if the user chose to do so.


function OnEnd()
begin
if ((REMOVEALLMODE != 0) && (BATCH_INSTALL)) then
BATCH_INSTALL = FALSE;
endif;
END;


Hopefully InstallShield will fix this in an upcoming SP, if not I will report it again during the next beta if need be.
0 Kudos
KevinGG
Level 2

If this helps anyone.....

We have tried the various workaround that have been mentioned but none seem to work, after contacting Macrovision about this and I've been sent the same information as previously posted (this is a known issue IOC-000063184 and is currently awaiting a fix). We do not have a support contract in place with them and have been told that if it is fixed in the current version we will receive it, but if it is not fixed until the next release then we will have to purchase the product again. I am about to complain about this as I feed that it a 'fit for purpose' issue that they should not have made in the first place (after all to workaround it they could simply switch off the restart installation option for now!).

In the meantime we could ship our products with a piece of paper attached to the media that explains that because of an InstallShield issue this error will occur (not very professional) or what we have done is write a small application (with no dependencies) that when a reboot is required will place itself at the reboot point (based on the GUID for the script).

When the runonce occurs the application simply marks itself for deletion (using the ::MoveFileEx() API call) the next time the machine is rebooted. This appears to have worked around the problem and if anyone requires this let me know and I'll make it available.

Regards,
Kevin.
0 Kudos
dmitrif
Level 2

Can you please share your Application?
or send it to me?

KevinGG wrote:
If this helps anyone.....

We have tried the various workaround that have been mentioned but none seem to work, after contacting Macrovision about this and I've been sent the same information as previously posted (this is a known issue IOC-000063184 and is currently awaiting a fix). We do not have a support contract in place with them and have been told that if it is fixed in the current version we will receive it, but if it is not fixed until the next release then we will have to purchase the product again. I am about to complain about this as I feed that it a 'fit for purpose' issue that they should not have made in the first place (after all to workaround it they could simply switch off the restart installation option for now!).

In the meantime we could ship our products with a piece of paper attached to the media that explains that because of an InstallShield issue this error will occur (not very professional) or what we have done is write a small application (with no dependencies) that when a reboot is required will place itself at the reboot point (based on the GUID for the script).

When the runonce occurs the application simply marks itself for deletion (using the ::MoveFileEx() API call) the next time the machine is rebooted. This appears to have worked around the problem and if anyone requires this let me know and I'll make it available.

Regards,
Kevin.


Thanx in Advance
0 Kudos
Peter_Goodwin
Level 3

Just had the same error after upgrading from ISX, any news on IOC-000063184 when this will be fixed?
0 Kudos
esiemiat
Level 9

No nothing. If InstallShield remains true to form this will not get fixed until the next version if we are lucky.
0 Kudos