Skip to content

MSI Installation

Simon Tushev edited this page Nov 30, 2020 · 10 revisions

Starting with v. 2.0.1, the releases are provided as MSI packages. This allows for automated deployment and brings more features and flexibility.

Upgrade logic

During upgrade, the installer normally will not remove the scheduled task for checking for updates. It is being removed only during uninstall.

The same is true for upgrading from older, Inno-based .exe installers.

If you change installation path during upgrade, the scheduled task will not be changed by installer. However, on the next launch of configuration window, the updater will check whether the scheduled task points to this very instance:

MSI Parameters

Apart from standard msiexec parameters, the MSI packages support some extra parameters for more control during installation process.

The command line may look like:

  • msiexec.exe /i AJUpdateWatcher-2.0.1.0-setup.msi SETTASK=1 - this could be the default one for automated deployment
  • msiexec.exe /i AJUpdateWatcher-2.0.1.0-setup.msi INSTALLFOLDER=X:\path SETTASK=2
  • msiexec.exe /x AJUpdateWatcher-2.0.1.0-setup.msi KEEPTASK="ASK"

As of version 2.0.1, the following parameters are supported:

  • INSTALLFOLDER=X:\path Provides the default installation path. This path may be overridden during install process if an older installation is discovered.
  • FORCEINSTALLFOLDER=X:\forced\path This will force installation to the specified directory, overriding any paths discovered by an older installation. The older installation will be removed, and after that the new package will be installed.
  • KEEPTASK="ASK" [Uninstall] Ask whether the uninstaller should remove scheduled task, if present. Does not work during upgrades. Calls AJUpdateWatcher.exe with -askdeletetask argument.
  • KEEPTASK="KEEP" [Uninstall] Force the uninstaller to keep scheduled task, if present. Does not work during upgrades. By default, the scheduled task is (silently, since v. 2.0.1.0) removed during uninstall.
  • SETTASK=1 Setup scheduled task, ask user on conflicts. Calls AJUpdateWatcher.exe with -settask_askifnonconsistent argument.
  • SETTASK=2 Force set scheduled task (removing all conflicting items). Calls AJUpdateWatcher.exe with -forcesettask argument.