Question

Q: How do I make the installer ask the user a yes/no question?

How do I make the installer ask the user a yes/no question?

Answer:

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>