If any of the entries [WinNT]\SupportedVer or [Win9x]\SupportedVer is missing, the
program can not be installed on that operating system and you get an error
message saying "Operating system not supported".
How it works
VSSetup launches MsiExec. The command line used when launching MsiExec is formed as follows:
The name of the MSI file is always added to the end of the command line.
Any external parameters passed to the exe are always put at the start of the command line.
If the parameter CmdLine has been specified it is used without further processing. This can be useful if you always want to launch it with the same parameters.
If no CmdLine is specified, a check is made to see if the same product is already installed.
If an older version of the product is already installed, add CmdUpgrade to the command line. If no CmdUpgrade is specified,
"REINSTALLMODE=vomus REINSTALL=All /i" is added. VSINSTALLEDVER is added specifying the installed version.
If a newer version of the product is already installed and CmdDowngrade
is not specified, show message Msg011 and then exit with exit code 6. If
CmdDowngrade is specified add it to the command line and then add VSINSTALLEDVER
to specify the installed version.
If the product is not already installed or the same version is installed, CmdMaintenance is added to the command line. If no CmdMaintenance is specified, just
"/i" is added.
If the program is run on Windows NT/2000 and the WinNT parameter is not specified, or if the program is run on Windows 9x and the Win9x parameter is not specified, the user is told that the OS is not supported.
The program checks that version 1.10.1029.0 or later of Windows Installer is installed.
The required version can be changed by specifying MSIVer for all OS
versions in the Setup section or in the OS specific WinNT or Win9x
sections.
If the correct version of Windows Installer is not found on the computer, the InstMsi.exe specified with the
InstMSIPath setting in the WinNT or Win9x section is executed. If there is
no InstMSIPath setting and InstMSIUrl is specified the default web
browser is launched to display the URL. This can be used to give detailed
instructions to the user how to install or upgrade Windows Installer.
If neither InstMSIPath nor InstMSIUrl is specified error message 010
is displayed.
The parameter Title is used in any dialogs.
The settings found in the ini file are expanded with the
Win32 API function ExpandEnvironmentStrings. This means
that any strings enclosed between % and is also an environment variable, will be
substituted for that variable.
Some command line parameters that are used by MsiExec are
also identified by VSSetup. If /qb is found on the command line VSSetup will not
show any modal dialog boxes. If /q is found, no UI will be displayed at all. If
the text "REBOOT=ReallySuppress" is found, no automatic reboot will be done by
VSSetup if Windows Installer was upgraded. Instead return code 1 is returned.
Setting up the dialogs
To present a nice UI when an upgrade is made, you should make
sure that a proper dialog is presented in this case. You can use
VSSetupTempl.msi as a template for how to set up
the dialogs. The dialog called "Patch dialog" will be displayed when an upgrade
is made. (Especially the conditions in the InstallUISequence are interesting.)
A few examples
If you always want to launch the installation as "MsiExec /i", specify
CmdLine=/i. This can be useful if you do not support upgrades.
If you want to perform an upgrade that does not rewrite all registry settings, specify
CmdUpgrade=REINSTALLMODE=vo REINSTALL=All /i
If you want to make an unattended installation that upgrades if another version is installed and
repairs if the same version is installed, specify CmdUpgrade=REINSTALLMODE=vomus REINSTALL=All
/qb /i and CmdMaintenance=/qb /f
Return codes
| Version |
Comment |
| 2002-02-13
1.0 b26 |
Some
messages were not loaded from the ini file [Msg] section |
| 2001-09-08
1.0 b25 |
Verifies
that SP6 is installed on NT4 before trying to install Windows Installer 2.0. |
| 2001-08-31
1.0 b24 |
Keeps the
status window visible during the whole installation of Windows Installer. |
| 2001-08-31
1.0 b23 |
Support for
Windows Installer 2.0. If MSIVer >= 2.0.0.0 upgrade
will be done even on Windows 2000. |
| 2001-08-25
1.0 b22 |
Probably
fixed problem that an installation could hang at the end. It seems like
MsiExec waited for VSSetup for some reason. |
| 2001-06-11
1.0 b21 |
Fixed
problem that /q did not hide splash window. Added ExpandEnvironmentString
processing of ini file settings. |
| 2001-02-24 1.0 b20 |
Added check if a more recent
version is already installed. If it is, the default behavior is to display
Msg011 and then exit with exit code 6. |
| 2001-02-19 1.0 b19 |
Fixed problems with 'umlaut'
in German and Swedish that was not displayed correctly in message boxes. |
| 2001-01-27 1.0 b18 |
Added translation of Msg010
to German. |
| 2001-01-26 1.0 b17 |
Changed the ini file to the OS specific
sections WinNT and Win9x. Added support for specifying required version of
MSI. |
| 2000-11-24 1.0 b16 |
Fixed problem with reboots in Win9x.
Sometimes the program hang instead of rebooting. |
| 2000-07-11 1.0 b14 |
Fixed problem downloading from http: |
| 2000-04-05 1.0 b12 |
Bug fix |
| 2000-04-05 1.0 b11 |
Support for messages in German |
| 2000-02-01 1.0 b9 |
First version available to users outside
Vinga |