WOW Option

Apr 29, 2010 at 11:53 AM
How does this work? What do i choose if I want to get installcheck working
running a 32 bit application on a 64 bit machine?
Declaration Syntax
C# Visual Basic Visual C++
public enum installcheck_wowoption
Public Enumeration installcheck_wowoption
public enum class installcheck_wowoption
Members
Member Description
NONE
WOW64_64
WOW64_32
Coordinator
Apr 30, 2010 at 11:45 AM

You only need this if you're checking for the existance of a 64-bit application. I'm adding the following to the documentation:

Registry checks support both 32-bit and 64-bit registry views. dotNetInstaller is a 32-bit application and by default accesses the 32-bit registry view on a 64-bit operating system. To access the 64-bit registry view, set wowoption to WOW64_64. For more information see http://msdn.microsoft.com/en-us/library/aa384129(VS.85).aspx.

For example, MSSQL Server 2005 Backward Compatibility Components (we use SQLDMO) comes in two flavors: 32 and 64. The checks are written like this. Note the wowoption in the 64-bit version.

    <!-- SQL Server 2005 Backward Compatibility (x86) -->
    <component package="#CABPATH\SQLServer2005_BC_x86.msi" cmdparameters="/qb- ALLUSERS=1 ADDLOCAL=SQL_DMO" cmdparameters_silent="/qn ALLUSERS=1 ADDLOCAL=SQL_DMO" cmdparameters_basic="/qb- ALLUSERS=1 ADDLOCAL=SQL_DMO" uninstall_package="#CABPATH\SQLServer2005_BC_x86.msi" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qn" uninstall_cmdparameters_basic="/qb-" id="SQLServerBCx86" display_name="SQL Server 2005 Backward Compatibility (x86)" uninstall_display_name="" os_filter_greater="" os_filter_smaller="" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" required="True" selected="True" note="" processor_architecture_filter="x86" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False">
      <installedcheck path="SOFTWARE\Microsoft\Microsoft SQL Server\BC\CurrentVersion" fieldname="Version" fieldvalue="1" defaultvalue="False" fieldtype="REG_SZ" comparison="exists" rootkey="HKEY_LOCAL_MACHINE" wowoption="NONE" type="check_registry_value" description="Installed Check" />
      <embedfile sourcefilepath="${externals.dir}\sqlserverbcc\SQLServer2005_BC.x86\SQLServer2005_BC.msi" targetfilepath="SQLServer2005_BC_x86.msi" />
    </component>
    <!-- SQL Server 2005 Backward Compatibility (x64) -->
    <component package="#CABPATH\SQLServer2005_BC_x64.msi" cmdparameters="/qb- ALLUSERS=1 ADDLOCAL=SQL_DMO" cmdparameters_silent="/qn ALLUSERS=1 ADDLOCAL=SQL_DMO" cmdparameters_basic="/qb- ALLUSERS=1 ADDLOCAL=SQL_DMO" uninstall_package="#CABPATH\SQLServer2005_BC_x64.msi" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qn" uninstall_cmdparameters_basic="/qb-" id="SQLServerBCx64" display_name="SQL Server 2005 Backward Compatibility (x64)" uninstall_display_name="" os_filter_greater="" os_filter_smaller="" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" required="True" selected="True" note="" processor_architecture_filter="x64" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False">
      <installedcheck path="SOFTWARE\Microsoft\Microsoft SQL Server\BC\CurrentVersion" fieldname="Version" fieldvalue="1" defaultvalue="False" fieldtype="REG_SZ" comparison="exists" rootkey="HKEY_LOCAL_MACHINE" wowoption="WOW64_64" type="check_registry_value" description="Installed Check" />
      <embedfile sourcefilepath="${externals.dir}\sqlserverbcc\SQLServer2005_BC.x64\SQLServer2005_BC_x64.msi" targetfilepath="SQLServer2005_BC_x64.msi" />
    </component>