How do I make the installer ask the user a yes/no question?
You can make the installer ask the user a yes/no question using a boolean parameter. You will have to include a section like the one below inside the parameterList section of your XML installer project file.
<booleanParameter>
<name>createdb</name>
<ask>yes</ask>
<default>1</default>
<title>Database Install</title>
<explanation>Should initial database structure and data be created?</explanation>
<value>1</value>
</booleanParameter>
This will create an installer environment variable called createdb
that will contain the value "1" if the user answered "yes" or the value "0" if the user answered "no" to the question. You can later refer to the content of the variable using ${createdb}, for example in a <isTrue>
or <isFalse>
rule:
<showInfo text="The user selected Yes">
<ruleList>
<isTrue>
<value>${createdb}</value>
</isTrue>
</ruleList>
</showInfo>
boolean.xml
<project>
<shortName>sample</shortName>
<fullName>Sample Project</fullName>
<version>1.0</version>
<installerFilename></installerFilename>
<readmeFile></readmeFile>
<licenseFile></licenseFile>
<wrapLicenseFileText>1</wrapLicenseFileText>
<leftImage></leftImage>
<logoImage></logoImage>
<splashImage></splashImage>
<defaultLanguage></defaultLanguage>
<allowLanguageSelection>0</allowLanguageSelection>
<postInstallationScript></postInstallationScript>
<postInstallationScriptArguments></postInstallationScriptArguments>
<showPostInstallationScriptResult>0</showPostInstallationScriptResult>
<preUninstallationScript></preUninstallationScript>
<preUninstallationScriptArguments></preUninstallationScriptArguments>
<allowedLanguages></allowedLanguages>
<cdromDirectory>${product_shortname}-${product_version}-cdrom</cdromDirectory>
<cdromDiskSize>700000000</cdromDiskSize>
<cdromFirstDiskSize>650000000</cdromFirstDiskSize>
<defaultUnixDirectoryPermissions>755</defaultUnixDirectoryPermissions>
<defaultUnixFilePermissions>644</defaultUnixFilePermissions>
<outputDirectory>${installbuilder_install_root}/output</outputDirectory>
<projectSchemaVersion>1.2</projectSchemaVersion>
<saveRelativePaths>0</saveRelativePaths>
<slideShowLoop>1</slideShowLoop>
<slideShowTiming>5</slideShowTiming>
<startMenuGroupName>${product_fullname}</startMenuGroupName>
<style>standard</style>
<uninstallerDirectory></uninstallerDirectory>
<validatorProgram></validatorProgram>
<componentList>
<component>
<name>default</name>
<description>Default Component</description>
<canBeEdited>1</canBeEdited>
<detailedDescription></detailedDescription>
<selected>1</selected>
<show>1</show>
<desktopShortcutList/>
<folderList>
<folder>
<description>Program Files</description>
<destination>${installdir}</destination>
<name>programfiles</name>
<platforms>all</platforms>
<shortcutList>
<shortcut>
<comment>Uninstall</comment>
<exec>${installdir}/uninstall</exec>
<icon></icon>
<name>Uninstall ${product_fullname}</name>
<path>${installdir}</path>
<platforms>all</platforms>
<windowsExec>${installdir}/uninstall.exe</windowsExec>
<windowsExecArgs></windowsExecArgs>
<windowsIcon></windowsIcon>
<windowsPath>${installdir}</windowsPath>
</shortcut>
</shortcutList>
</folder>
<folder>
<description>Program Files</description>
<destination>${installdir}</destination>
<name>programfileslinux</name>
<platforms>linux</platforms>
</folder>
<folder>
<description>Program Files</description>
<destination>${installdir}</destination>
<name>programfileswindows</name>
<platforms>windows</platforms>
</folder>
</folderList>
<startMenuShortcutList>
<startMenuShortcut>
<comment>Uninstall ${product_fullname}</comment>
<name>Uninstall ${product_fullname}</name>
<windowsExec>${installdir}/uninstall.exe</windowsExec>
<windowsExecArgs></windowsExecArgs>
<windowsIcon></windowsIcon>
<windowsPath>${installdir}/</windowsPath>
</startMenuShortcut>
</startMenuShortcutList>
</component>
</componentList>
<customLanguageFileList/>
<fileList/>
<parameterList>
<directoryParameter>
<name>installdir</name>
<title></title>
<description>Installer.Parameter.installdir.description</description>
<explanation>Installer.Parameter.installdir.explanation</explanation>
<value></value>
<default>${platform_install_prefix}/${product_shortname}-${product_version}</default>
<allowEmptyValue>0</allowEmptyValue>
<ask>yes</ask>
<cliOptionName>prefix</cliOptionName>
<leftImage></leftImage>
<mustBeWritable>yes</mustBeWritable>
<mustExist>0</mustExist>
<width>40</width>
</directoryParameter>
<booleanParameter>
<name>createdb</name>
<ask>yes</ask>
<default>1</default>
<title>Database Install</title>
<explanation>Should initial database structure and data be created?</explanation>
<value>1</value>
</booleanParameter>
</parameterList>
<platformOptionsList/>
<postInstallationActionList/>
<preBuildActionList/>
<preInstallationActionList/>
<preUninstallationActionList/>
<slideShowImageList/>
</project>