cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
yeeht19
Level 5

Run vbs at prerequisite

Hi,

I've created a simple program to prompt message in vbs for one of my prerequisite checking.
But I found that IS don't allow me to browse to the vbs file.
Can we run vbs from prerequisite?

Thanks & Regards,
Hoay Yee
Labels (1)
0 Kudos
(10) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Not in IS2008; the prerequisite engine doesn't know how to launch a vbs file, so it won't work. If you need to make things work here, you can create an exe file which can launch e.g., cscript.exe on the vbs file, and include both your created exe and vbs file in the prerequisite.

In IS2009 the prerequisite engine can use ShellExecute, which acts like you double-clicked the file. I haven't tested it, but I believe this will allow a vbs file to be run correctly. You might still need to override the file browser by typing a filename of *.vbs (or *.*) in order to select your vbs file, however. If upgrading to IS2009 is an option for you, it might be worth downloading the evaluation.
0 Kudos
yeeht19
Level 5

Hi Michael,

How do I abort IS from exe?

My scenario is like below:
Check for the existense of prerequisite. If not installed, prompt a message then abort the installation.
Besides running own exe, is there any way to prompt a customized message in prerequisite?
In fact, I don't want to include any file for that prerequisite if possible.

Thanks & Regards,
HY
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

How to abort from an EXE in Prerequisites? In prerequisites, it's all a matter of the conditions and behavior that was chosen for the prerequisite. So make sure not to cause the condition to be satisfied, and set it to abort the install if the conditions are still not met. Of course that means you have to have a condition you can change in other scenarios, and this falls down pretty quick if you're just trying to make an unusual check.

The prerequisite engine does not support customized messages at this point, so currently you will have to write your own, and probably in exe form. Mind you that an InstallScript setup is an exe, and might work in a pinch. Or it might work as the outer exe which checks things before launching the MSI-based setup.
0 Kudos
yeeht19
Level 5

Hi Michael,

Can installScript run before pre-requisite?
Actually i tried to use condition abort setup & change the message 1667 in
0x0409.ini file. But the message doesn't prompt.

Please advise.

Thanks & Regards,
HY
0 Kudos
packagechief
Level 5

yeeht19 wrote:
Hi Michael,

Can installScript run before pre-requisite?
Actually i tried to use condition abort setup & change the message 1667 in
0x0409.ini file. But the message doesn't prompt.

Please advise.

Thanks & Regards,
HY


No this isn't possible cause setup prerequsites are always processed before any other operation (including Installscripts) this is necessary to met the requirements and therefore it dosen't make any sense to send a specific message to the user...
the best in my oppion is to run the setup of the requirements directly while the main setup process is running
so the main application can be installed successfully..

I used this very handy feature last time i installed a CAM Software (where DOT.NET 2.x and C++ Libs where required to complete the setup)

Have a look at the screenshots attached to better understand the logic behind setup prerequsites
0 Kudos
yeeht19
Level 5

Thanks for your reply.
But i guess i don't make my case clear.

Actually my case is like this:
This software is the 1st prerequisite that i want to check.
No setup exe will be included in the CD.
Check the software existence. If it is not installed, prompt a message then abort the setup.

I have tried to write an exe to prompt the message, but i don't want this exe to be in the CD.

Please advise.

Thanks & Regards,
HY
0 Kudos
packagechief
Level 5

yeeht19 wrote:
Thanks for your reply.
But i guess i don't make my case clear.

Actually my case is like this:
This software is the 1st prerequisite that i want to check.
No setup exe will be included in the CD.
Check the software existence. If it is not installed, prompt a message then abort the setup.

I have tried to write an exe to prompt the message, but i don't want this exe to be in the CD.

Please advise.

Thanks & Regards,
HY


So for my understandig: there is nothing on the target machine and your application is the first one, which shoud be installed right? and if it dosen't exists setup shoud abort right?


Well as Michael already described within the prerequisite Editor you can't run separate vbs or exe Files if the condition is met.. this seems to be a Version (IS2008) Problem

Let me explain why your suggestions won't work

Windows Installer Technology is based on components and features and they can be installed on demand and the Windows Installer Service on the target machine takes care about the correct assigments and implements also a rollback feature in case of a failure.. and other handy functions..so the setup designer dosen't have to take care about the correct sequencing of the setup. This very useful and can avoid install errors and finally faulty applications or damaged Windows Systems.

So thats quiet clear, why prerequisites shoud be checked first (before any other job is done within the setup chain).. otherwise the Windows Installer can't determine which after action shoud be performed to ensure that application finally runs correctly or not..

If you run the setup on the target machine the following will happen:

1.) Windows Installer Service will be started (if its not) and now he opens the MSI Package to check for the proper access to the internal Database
2.) If this is ok, next the Installer checks if there are prerequisites and what condition is defined for the prerequisites..

3.) if the file oder regkey (and of course the condition is set to True) wasn't found on the target Windows Installer calls the separate setup to met the requirement and resets the flag of the condition (or a loop will occur)

4.) now as the prerequisites are met, setup will continue with checking of free disk space on the target (if defined) and do an abort, if this condition isn't met (Disk Cost Function)

5.) then the Custom Action Table will be opened to look for user defined Custom Actions and on which sequence they shoud called and what they have to do.. (copy files, registering application and other stuff)

6.) then the Windows Installer begins to copy the files and folders to the target and if there is a failure in this sequence (of course also in the sequences before or after) the rollback feature will be called to reset the target to state before the new setup was initated, this is only possible cause Windows Installer has took a snapshot before and saved the important systems files into a backup location, this Feature is one of the biggest plus point for the Windows Installer Technology

7.) if this step was sucessfull some cleanup and registering Jobs will be done (COM+ Application Activation, Creating Shortcuts and so on)

8.) Finally if all went ok, the Windows Installer closes the Database of the MSI File and removes any backups (Rollback) if necessary

Now your application is installed on the target and shoud work fine..

As you can see this steps can't be done manually, cause your "application" has no correct state information of the system as it was before the application where installed.. This was a big problem in earlier time, before Windows Installer was published. A setup designer in the past had to check manually for the correct state, but there was no garuantee for this..
(especally if the setup routine replaces important system files with the wrong version)
With the release of Windows Installer (and the ability to write this directly to an internal DB) this problem was solved
0 Kudos
yeeht19
Level 5

Hi,

Actually i had solved the issue, by setting the prerequisite condition where:
If after installing, condition still indicate it is required, Abort the setup.
I then modified the message in 0x0409.ini, message 1667 to prompt the desired warning. But in XP SP3, the message doesn't prompt.

I started a new thread asking about this: http://community.macrovision.com/showthread.php?t=182128
So far no feedback yet, maybe you can advise too.

Thanks & Regards,
HY
0 Kudos
packagechief
Level 5

yeeht19 wrote:
Hi,

Actually i had solved the issue, by setting the prerequisite condition where:
If after installing, condition still indicate it is required, Abort the setup.
I then modified the message in 0x0409.ini, message 1667 to prompt the desired warning. But in XP SP3, the message doesn't prompt.

I started a new thread asking about this: http://community.macrovision.com/showthread.php?t=182128
So far no feedback yet, maybe you can advise too.

Thanks & Regards,
HY


ok, don't know.. but as far as i heard within SP3 for XP (which is eitherways not recommended, cause SP3 coud seriously damaged your Windows Installation) includes new Windows Installer 4.5 which has new features and cause IS 2008 is made to run with 3.1 Installer (max) this coud eventually be your problem...which means IS2008 isn't compatible to the new Installer

Have you tried your project to get running under a XP with SP2 and how does it look like?
0 Kudos
yeeht19
Level 5

I have no problem running my installer in XP SP2, even Vista. The message will prompt when pre-requisite abort. But in SP3, no message prompt, the installer just close.When restart the installer, it doesn't prompt to install the prerequisite again. 😞

Hopefully there is solution for this. Maybe another alternative way to check on the pre-requisite, which work in SP3 as well.
0 Kudos