Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Creating a Localized Windows Installer & Bootstrapper: Part 3

, 25 Feb 2013 CPOL
This series of articles is a complete end-to-end solution for building a localizable Windows Installer & Bootstrapper using some real-world requirements.
WixWindowsInstallerDemo-noexe.zip
installer
binary
Banner.bmp
Dialog.bmp
EULA_en-gb.rtf
EULA_it-it.rtf
bootstrapper
banner.bmp
Component.wxs
Config.wxi
en-GB.wxl
Installer.suo
it-IT.wxl
Main.wxs
targetfiles
MyApp.suo
tools
MsiIntel.SDK
build
MyApp.Installer.build
WixWindowsInstallerDemo.zip
Banner.bmp
Dialog.bmp
EULA_en-gb.rtf
EULA_it-it.rtf
banner.bmp
dotNetFx40_Client_setup.exe
Component.wxs
Config.wxi
en-GB.wxl
Installer.suo
it-IT.wxl
Main.wxs
MyApp.suo
MyApp
bin
Release
MyApp.exe
MyAppLibrary.dll
MyApp.Installer.build
Prerequisites.exe
<?xml version="1.0" encoding="utf-8"?>
<configurations lcid_type="User" show_language_selector="False" language_selector_title="" language_selector_ok="OK" language_selector_cancel="Cancel" configuration_no_match_message="" ui_level="full" fileversion="@INSTALLER_VERSION@" productversion="@INSTALLER_VERSION@" log_enabled="True" log_file="#TEMPPATH\dotNetInstallerLog.txt">
  <schema version="2.0.3704.0" generator="dotNetInstaller InstallerEditor" />
  <fileattributes>
    <fileattribute name="LegalCopyright" value="@INSTALLER_COPYRIGHT@" />
    <fileattribute name="ProductName" value="@APPLICATION_NAME@ Installer" />
    <fileattribute name="ProductVersion" value="@INSTALLER_VERSION@" />
    <fileattribute name="CompanyName" value="@APPLICATION_MANUFACTURER@" />
    <fileattribute name="FileDescription" value="Installer for the @APPLICATION_NAME@." />
    <fileattribute name="FileVersion" value="@INSTALLER_VERSION@" />
  </fileattributes>
  <configuration dialog_caption="@APPLICATION_NAME@ Installer" dialog_message="In order to install @APPLICATION_NAME@ you must first install these components:" dialog_message_uninstall="" dialog_bitmap="" skip_caption="Skip" install_caption="Install" uninstall_caption="Uninstall" cancel_caption="Close" status_installed=" (Installed)" status_notinstalled="" failed_exec_command_continue="Failed to install %s. Continue with others components?" installation_completed="" uninstallation_completed="@APPLICATION_NAME@ uninstalled successfully!" installation_none="" uninstallation_none="@APPLICATION_NAME@ is not installed!" installing_component_wait="Installing %s. Wait, this operation could take some time ..." uninstalling_component_wait="Uninstalling %s. Wait, this operation could take some time ..." reboot_required="To continue the installation you must restart your computer. Restart now?" must_reboot_required="False" dialog_otherinfo_caption="TheCodeKing.co.uk" dialog_otherinfo_link="http://www.thecodeking.co.uk" complete_command="msiexec /i &quot;#CABPATH\setup.msi&quot;" complete_command_silent="msiexec /i &quot;#CABPATH\setup.msi&quot; /qn" complete_command_basic="msiexec /i &quot;#CABPATH\setup.msi&quot; /qb" wait_for_complete_command="True" auto_close_if_installed="True" auto_close_on_error="True" reload_on_error="True" dialog_show_installed="True" dialog_show_uninstalled="True" dialog_show_required="True" cab_dialog_message="%s" cab_cancelled_message="" cab_dialog_caption="" cab_path="#TEMPPATH\#GUID" cab_path_autodelete="True" dialog_default_button="cancel" dialog_position="" dialog_components_list_position="" dialog_message_position="" dialog_bitmap_position="" dialog_otherinfo_link_position="" dialog_osinfo_position="" dialog_install_button_position="" dialog_cancel_button_position="" dialog_skip_button_position="" auto_start="False" auto_continue_on_reboot="False" reboot_cmd="" show_progress_dialog="False" show_cab_dialog="False" type="install" lcid_filter="!1040" language_id="1033" language="English" os_filter="" os_filter_min="win7" os_filter_max="" processor_architecture_filter="" supports_install="True" supports_uninstall="True">
    <component executable="#CABPATH\dotNetFx40_Client_setup.exe" executable_silent="" executable_basic="" install_directory="" responsefile_source="" responsefile_target="" responsefile_format="none" uninstall_executable="" uninstall_executable_silent="" uninstall_executable_basic="" uninstall_responsefile_source="" uninstall_responsefile_target="" returncodes_success="" returncodes_reboot="" exeparameters="/lcid #LANGID /passive" exeparameters_basic="/passive" exeparameters_silent="/q" uninstall_exeparameters="" uninstall_exeparameters_basic="" uninstall_exeparameters_silent="" id="Microsoft .NET Framework 4 Client Profile" display_name="Microsoft .NET Framework 4 Client Profile" uninstall_display_name="" os_filter="" os_filter_min="" os_filter_max="" os_filter_lcid="" type="exe" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="False" show_cab_dialog="False">
      <installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
    </component>
    <embedfile sourcefilepath="@MSI_PATH@" targetfilepath="setup.msi" />
    <embedfile sourcefilepath="#APPPATH\dotNetFx40_Client_setup.exe" targetfilepath="dotNetFx40_Client_setup.exe" />
  </configuration>
  <configuration dialog_caption="@APPLICATION_NAME@ Installer" dialog_message="Per installare @APPLICATION_NAME@ è necessario aggiornare questi componenti:" dialog_message_uninstall="" dialog_bitmap="" skip_caption="Skip" install_caption="Installa" uninstall_caption="Uninstall" cancel_caption="Chiudi" status_installed=" (Installato)" status_notinstalled="" failed_exec_command_continue="Impossibile installare %s. Continuare l'installazione?" installation_completed="" uninstallation_completed="!!!! ERROR - Attribute setupconfiguration/@uninstallation_completed not found in template file!!!!!" installation_none="" uninstallation_none="!!!! ERROR - Attribute setupconfiguration/@uninstallation_none not found in template file!!!!!" installing_component_wait="Installazione di %s in corso. Attendere, l'operazione potrebbe richiedere alcuni minuti ..." uninstalling_component_wait="!!!! ERROR - Attribute setupconfiguration/@uninstalling_component_wait not found in template file!!!!!" reboot_required="Per completare l'installazione è necessario riavviare il computer. Riavviare ora?" must_reboot_required="False" dialog_otherinfo_caption="TheCodeKing.co.uk" dialog_otherinfo_link="http://www.thecodeking.co.uk" complete_command="msiexec /i #CABPATH\setup.msi TRANSFORMS=&quot;:1040&quot;" complete_command_silent="msiexec /i #CABPATH\setup.msi TRANSFORMS=&quot;:1040&quot; /qn" complete_command_basic="msiexec /i #CABPATH\setup.msi TRANSFORMS=&quot;:1040&quot; /qb" wait_for_complete_command="True" auto_close_if_installed="True" auto_close_on_error="True" reload_on_error="True" dialog_show_installed="True" dialog_show_uninstalled="True" dialog_show_required="True" cab_dialog_message="%s" cab_cancelled_message="" cab_dialog_caption="" cab_path="#TEMPPATH\#GUID" cab_path_autodelete="True" dialog_default_button="cancel" dialog_position="" dialog_components_list_position="" dialog_message_position="" dialog_bitmap_position="" dialog_otherinfo_link_position="" dialog_osinfo_position="" dialog_install_button_position="" dialog_cancel_button_position="" dialog_skip_button_position="" auto_start="False" auto_continue_on_reboot="False" reboot_cmd="" show_progress_dialog="False" show_cab_dialog="False" type="install" lcid_filter="1040" language_id="1040" language="Italiano" os_filter="" os_filter_min="win7" os_filter_max="" processor_architecture_filter="" supports_install="True" supports_uninstall="True">
    <component executable="#CABPATH\dotNetFx40_Client_setup.exe" executable_silent="" executable_basic="" install_directory="" responsefile_source="" responsefile_target="" responsefile_format="none" uninstall_executable="" uninstall_executable_silent="" uninstall_executable_basic="" uninstall_responsefile_source="" uninstall_responsefile_target="" returncodes_success="" returncodes_reboot="" exeparameters="/lcid #LANGID /passive" exeparameters_basic="/passive" exeparameters_silent="/q" uninstall_exeparameters="" uninstall_exeparameters_basic="" uninstall_exeparameters_silent="" id="Microsoft .NET Framework 4 Client Profile" display_name="Microsoft .NET Framework 4 Client Profile" uninstall_display_name="" os_filter="" os_filter_min="" os_filter_max="" os_filter_lcid="" type="exe" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="False" selected_install="True" selected_uninstall="False" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="False" show_cab_dialog="False">
      <installedcheck path="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" fieldname="Install" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
    </component>
  </configuration>
</configurations>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

TheCodeKing
Architect
United Kingdom United Kingdom
Mike Carlisle - Technical Architect with over 15 years experience in a wide range of technologies.
 
@TheCodeKing
Follow on   Twitter

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.141223.1 | Last Updated 25 Feb 2013
Article Copyright 2010 by TheCodeKing
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid