Click here to Skip to main content
15,885,885 members
Articles / Windows Installer

Creating a Localized Windows Installer & Bootstrapper: Part 2

Rate me:
Please Sign up or sign in to vote.
4.17/5 (3 votes)
25 Feb 2013CPOL4 min read 35.2K   165   13  
This series of articles is a complete end-to-end solution for building a localizable Windows Installer & Bootstrapper using some real-world requirements.
<?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)


Written By
Architect
United Kingdom United Kingdom
Mike Carlisle - Technical Architect with over 20 years experience in a wide range of technologies.

@TheCodeKing

Comments and Discussions