WinSCP

This is a silent installer and uninstaller for WinSCP (http://winscp.net/), an FTP, SFTP and SCP client.

WinSCP 5.5.1

<packages:packages xmlns:packages="http://www.wpkg.org/packages"
        xmlns:wpkg="http://www.wpkg.org/wpkg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.wpkg.org/packages ../xsd/packages.xsd">

<package
        id="winscp"
        name="WinSCP"
        revision="%ver-a%.%ver-b%.%ver-c%"
        priority="10"
        reboot="false">

        <variable name="ver-a" value="5" />
        <variable name="ver-b" value="5" />
        <variable name="ver-c" value="1" />

        <check
                type="uninstall"
                condition="versiongreaterorequal"
                path="^WinSCP .*"
                value="%ver-a%.%ver-b%.%ver-c%"/>

        <install cmd="%SOFTWARE%\winscp\winscp%ver-a%%ver-b%%ver-c%setup.exe /VERYSILENT /NORESTART /NOCANDY" />
        <remove cmd="%PROGRAMFILES%\WinSCP\unins000.exe /VERYSILENT /NORESTART /NOCANDY" />

        <upgrade include="install" />
        <downgrade include="upgrade" />
</package>

</packages:packages>

WinSCP 5

<package
	id="winscp"
	name="WinSCP"
	revision="2"
	priority="10"
	reboot="false">

	<check
		type="uninstall"
		condition="exists"
		path="WinSCP 5" />

	<install cmd="%SOFTWARE%\winscp\winscp5setup.exe /VERYSILENT /NORESTART /NOCANDY" />

	<upgrade cmd="%SOFTWARE%\winscp\winscp5setup.exe /VERYSILENT /NORESTART /NOCANDY" />

	<remove cmd="%SOFTWARE%\winscp\winscp5setup.exe /VERYSILENT /NORESTART /NOCANDY" />
</package>


WinSCP 4.3.x

WinSCP uses an InnoSetup installer. The installation is described in the WinSCP documentation on installation.

<package
	id="winscp"
	name="WinSCP"
	revision="2"
	priority="10"
	reboot="false">

	<check
		type="uninstall"
		condition="exists"
		path="WinSCP 4.3.9" />

	<install
		cmd="%SOFTWARE%\winscp\winscp439setup.exe /sp- /silent /nocancel /norestart /nocandy /log" />

	<upgrade
		cmd="%SOFTWARE%\winscp\winscp439setup.exe /sp- /silent /nocancel /norestart /nocandy /log" />

	<remove
		cmd="%PROGRAMFILES%\WinSCP\unins000.exe /silent /log /norestart" />
</package>

The /NOCANDY parameter ensures OpenCandy, the facility for serving adverts during installation (and only during installation), isn't included. Without it a dialog box containing Please choose an option text will pop up in versions of the installer that include OpenCandy and halt the whole installation process. Some versions of WinSCP have included OpenCandy, but they don't at present, but this parameter remains included in case OpenCandy is included in future.

winscp.inf

If you want even more control over installation parameters you can generate a winscp.inf file by running:

winscp439setup.exe /SAVEINF="winscp.inf"

Then use /LOADINF="%SOFTWARE%\winscp\winscp.inf" during installation.

After generating winscp.inf, if you use a general installation script (like above), edit the line "DIR=C:\Program Files (x86)\WinSCP" to "DIR=" in order to force the intaller to install into its standard installation directory. Furthermore the "remove-action" should be edited.

WinSCP 3

<?xml version="1.0" encoding="utf-8"?>

<packages>
  <package
    id="winscp3"
    name="WinSCP v3"
    revision="3560"
    priority="0"
    reboot="false">

    <check type="uninstall" condition="exists" path="WinSCP 3.5.6"/>

    <install cmd='%SOFTWARE%\winscp\winscp356setup.exe /sp- /silent /norestart'/>

    <remove cmd='"%PROGRAMFILES%\WinSCP3\unins000.exe" /sp- /silent /norestart'/>

  </package>
</packages>