Runtime Uninstall

Got a problem you cannot solve? Try here.
KaBa
Posts: 21
Joined: Sat Sep 30, 2006 7:01 am

Runtime Uninstall

Postby KaBa » Sat Oct 07, 2006 8:34 am

Hello,

I have coding a runtime for Microsoft JET 4.0 SP 8. This runtime checks the version of msjet40.dll and install the Original-Microsoft-Patch for SP8.
How can I prevent the deinstallation of the runtime by uninstalling the main-app?

Karsten Baumann

MichaelNesmith
Posts: 3452
Joined: Thu Dec 22, 2005 7:17 pm
Contact:

Postby MichaelNesmith » Sun Oct 08, 2006 4:00 pm

Depends on how your runtime installation itself works. If its a merge module, it will probably uninstall itself, if it determines that no other applications are using it. If you are running an EXE file to install this runtime, simply do nothing - it will not be uninstalled. The pre-built runtimes do not uninstall themselves and are available for manual uninstall from the Control Panel.
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/

KaBa
Posts: 21
Joined: Sat Sep 30, 2006 7:01 am

Postby KaBa » Tue Oct 10, 2006 6:54 am

My problem is now thats popup a "browse for folder" to locate my original setup-file?!

I create a runtime-text-file (*.rtm) in the runtime folder of InstallAware. Two scripts I'm also create. The checkjet-script search the msjet40.dll in the system-folder und compare the fileversion.
The setupjet-script install the original-microsoft-patch with Run Programm. When I uninstall the dedault-project, the setup want to install the jet-engine and then popup the folderbrowser-dialog.
Please check my code. Why the runtime-installer not work???


checkjet:

Code: Select all

Set Variable JET to
Comment: Prüft Vorhandensein der Msjet40.dll
Get Common Folder Location System->System Directory into WINSYSDIR
Does File Exist $WINSYSDIR$\\msjet40.dll (get result into variable JET)
if Variable JET Equals TRUE
 Comment: Prüft Dateiversion SP8 4.0.8015.0
 Check File Version $WINSYSDIR$\\Msjet40.dll into Variable JET
end
if Variable JET Equals FALSE
 Set Variable PREREQ to TRUE
 Set Variable PRELIST to $PRELIST$$NEWLINE$Microsoft Jet 4.0 SP 8
end

setupjet:

Code: Select all

if Variable JET Equals FALSE
 Set Variable PROGRESSTEXT to Installiere Microsoft Jet 4.0 SP 8
Set Variable JetFILES to
 Define File Bag : #IADIR#\\runtimes\\jetbin\\*.*, get runtime location of files into variable JetFILES
 
 Comment: Betriebsystem auswählen
 Set Variable PROGRESSMODE to MARQUEE

 Get System Setting Windows XP into OSTMP
 if Variable OSTMP Equals TRUE
   Run Program $JetFILES$\\jet40sp8_wxp.exe /passive (WAIT)
 end

 Get System Setting Windows 2003 into OSTMP
 if Variable OSTMP Equals TRUE
   Run Program $JetFILES$\\jet40sp8_w2003.exe /passive (WAIT)
 end
 Set Variable PROGRESSMODE to
 
 if Variable Jet Equals REBOOT
   MessageBox: $TITLE$ Setup, Reboot....
   if Variable REBOOTNOW Equals OK
     Reboot Computer and Resume Setup
     else
     Terminate Installation
   end
   else
   if Variable JET Equals ERROR
     MessageBox: $TITLE$ Setup, Dont install....
     Terminate Installation
   end
 end
end
Last edited by KaBa on Tue Oct 10, 2006 10:04 am, edited 1 time in total.

MichaelNesmith
Posts: 3452
Joined: Thu Dec 22, 2005 7:17 pm
Contact:

Postby MichaelNesmith » Tue Oct 10, 2006 10:01 am

Nice job with the script! Just a couple oversights which should take care of the disk prompt here when fixed;

1. Wrap the entire setup script inside an If statement, checking if JET is FALSE. Otherwise your setup script for Jet always runs, even if Jet already exists. And at best you do an unnecessary re-install; at worst, you get an unnecessary disk prompt.

2. Make sure the check script sets JET to FALSE both when Jet does not exist, or is an old version. Set it to TRUE or some other value otherwise.

I think that should take care of it! You probably already have #2 covered, just double-checking there. And with #1, you'll make sure the setup for the runtime executes only when needed.
Michael Nesmith

InstallAware

Home of The Next Generation MSI Installer

Get your free copy today - http://www.installaware.com/

KaBa
Posts: 21
Joined: Sat Sep 30, 2006 7:01 am

Postby KaBa » Tue Oct 10, 2006 11:21 am

Code: Select all

if Variable JET Equals FALSE


The IF statement exists in my code. Im only forget insert it in the reply.
I think, I have found my problem. Windows XP SP2 always have install Jet 4.0 SP8 by default. To test my setup, I have change the check-version to 5.0.0.0. The installer cant find this version and the je-install starts.
But when I uninstall the setup I get an disk prompt. When I check the correct version (4.0.8015.0) the installer works. :D

When the user manual uninstall the jet-engine, my uninstall shows a disk prompt??? :(

MichaelNesmith
Posts: 3452
Joined: Thu Dec 22, 2005 7:17 pm
Contact:

Postby MichaelNesmith » Tue Oct 10, 2006 11:47 am

Of course it will. What is strange about your program working as you coded it? :lol: If you want to skip prereq checks in maintenance mode, just add another If and test for the value of the MAINTENANCE variable.
Michael Nesmith

InstallAware

Home of The Next Generation MSI Installer

Get your free copy today - http://www.installaware.com/


Return to “Technical Support”

Who is online

Users browsing this forum: No registered users and 249 guests