﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="Broker.xsl"?>
<InstBroker>
  <BrokerRequests>
    <BrokerRequest Name="Initialization">
      <Request Name="InitRegRequest" EstTime="1000" TimeOut="100000" UIName="#GatherInformation" ProgressBar="Progress" ActionOnFail="Continue">
        <Method>
          <CheckForExistingProduct Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalUpgradeFromRegKey">
            <productRegKeys>@globalValidUpgradeVersions</productRegKeys>
            <productGuids>@globalValidUpgradeGuids</productGuids>
            <returnGuid>false</returnGuid>
          </CheckForExistingProduct>
          <CheckForExistingProduct Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalUpgradeFromGuid">
            <productRegKeys>@globalValidUpgradeVersions</productRegKeys>
            <productGuids>@globalValidUpgradeGuids</productGuids>
            <returnGuid>true</returnGuid>
          </CheckForExistingProduct>
          <CheckForValidProductServicePack Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalValidUpgradeServicePack">
            <productRegKeys>@globalValidUpgradeVersions</productRegKeys>
            <productGuids>@globalValidUpgradeGuids</productGuids>
            <productServicePacks>@globalValidUpgradeServicePacks</productServicePacks>
          </CheckForValidProductServicePack>
          <CheckForInvalidProduct Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalInvalidProductFound">
            <productRegKeys>@globalInvalidUpgradeVersions</productRegKeys>
            <productGuids>@globalInvalidUpgradeGuids</productGuids>
          </CheckForInvalidProduct>
          <CheckRegistryExistence Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalPowerLogicScadaInstalled">
            <key>SOFTWARE\Citect\SCADA Installs</key>
          </CheckRegistryExistence>
          <CheckRegistryExistence Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalSystemManagerSoftwareInstalled">
            <key>SOFTWARE\SQUARE D COMPANY\PLComponents\DB_SMS_System</key>
          </CheckRegistryExistence>
          <CheckRegistryExistence Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalIonEnterpriseInstalled">
            <key>@globalBrandRegistryRoot/@</key>
          </CheckRegistryExistence>
          <GetNetworkServiceAccountNameNoDomain Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" SetReturnProperty="globalNetworkServiceLocalizedNameNoDomain" />
          <getNewGuid Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" SetReturnProperty="globalAppModsUserPassword" />
          <SetStringPropertyValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" SetReturnProperty="Custom_DBMaintenanceUsername">
            <inValue>IONMaintenance</inValue>
          </SetStringPropertyValue>
        </Method>
      </Request>
      <Request Name="SetIonDsdGuid" EstTime="1000" TimeOut="100000" UIName="#SetIONDsdGuid" ProgressBar="Animation" ActionOnFail="Continue">
        <Method>
          <getNewGuid Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" SetReturnProperty="globalIonDataSourceSignature"></getNewGuid>
        </Method>
      </Request>
    </BrokerRequest>
    <!-- Determines whether this install is a new install or upgrade. Populates 'globalBuildNumber' variable
            which can be used in other request condition(s).
      This request also runs at startup and is typically used to gather upgrade information
      -->
    <BrokerRequest Name="UpgradeRequest">
      <Request Name="DefaultBuildNo" EstTime="1000" TimeOut="100000" UIName="#SetDefaultBuildNumber" ProgressBar="Animation" ActionOnFail="Continue">
        <Method>
          <SetStringPropertyValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" SetReturnProperty="globalBuildNumber">
            <inValue>0</inValue>
          </SetStringPropertyValue>
        </Method>
      </Request>
      <Request Name="GatherUpgradeInfo" EstTime="1000" TimeOut="100000" UIName="#GatherUpgradeInformation" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <!-- Check to see if a language pack is installed from previous version-->
          <CheckRegistryExistence Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalIsIonLangPackInstalled">
            <key>@globalBrandRegistryRoot/@\@globalPreviousVersion/@\LangPack</key>
          </CheckRegistryExistence>
          <GetRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalUpgradeInstLangCultureName">
            <regPath>@globalBrandRegistryRoot/@\@globalPreviousVersion/@\LangPack</regPath>
            <keyValue>CultureInfoName</keyValue>
          </GetRegistryValue>
          <SetProductRegKey Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalUpgradeFromRegKey</value>
          </SetProductRegKey>
          <CheckSetupType Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotfindtheSetupType" SetReturnProperty="globalSetupType"></CheckSetupType>
          <GetProductRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotfindtheSetupType" SetReturnProperty="globalPreviousIonServicePack">
            <subkey></subkey>
            <valueName>ServicePack</valueName>
          </GetProductRegistryValue>
          <GetProductRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Couldnotfindtheinstalllocation" SetReturnProperty="globalProgramFileFolder">
            <subkey></subkey>
            <valueName>Location</valueName>
          </GetProductRegistryValue>
          <GetProductRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Couldnotfindtheinstalllocation" SetReturnProperty="globalVirtualRoot">
            <subkey></subkey>
            <valueName>VirtualDirectory</valueName>
          </GetProductRegistryValue>
          <GetProductRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotfindtheDatabaseServer" SetReturnProperty="globalEEMDbServer">
            <subkey>Databases</subkey>
            <valueName>IONServer</valueName>
          </GetProductRegistryValue>
          <GetProductRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotfindtheCompanyName" SetReturnProperty="globalCompanyName">
            <subkey></subkey>
            <valueName>LicensedOrganization</valueName>
          </GetProductRegistryValue>
          <GetProductRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotfindtheUserName" SetReturnProperty="globalUserName">
            <subkey></subkey>
            <valueName>LicensedUser</valueName>
          </GetProductRegistryValue>
          <GetProductRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotfindtheRemoteServer" SetReturnProperty="globalRemoteServer">
            <subkey></subkey>
            <valueName>PrimaryMachine</valueName>
          </GetProductRegistryValue>
          <GetProductInfoConnectionString Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#Couldnotdeterminetheconnection" SetReturnProperty="globalConnectionString"></GetProductInfoConnectionString>
          <!-- For upgrades, the sql connection is always SQL Auth from ProductInfo, so set it -->
          <SetStringPropertyValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#Couldnotdeterminetheconnection" SetReturnProperty="globalSqlLogOnMode">
            <inValue>SQLServerAuthenticationMode</inValue>
          </SetStringPropertyValue>
          <GetProductInfoUser Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#Couldnotdeterminetheconnection" SetReturnProperty="globalEEMDbLoginId"></GetProductInfoUser>
          <GetProductInfoPassword Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#Couldnotdeterminetheconnection" SetReturnProperty="globalEEMDbLoginPassword"></GetProductInfoPassword>
        </Method>
      </Request>
      <Request Name="CheckDatabaseInfo" EstTime="1000" TimeOut="100000" UIName="#CheckDatabaseInfo" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <VerifyProductInfoConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Errorsettingconnectionstring"></VerifyProductInfoConnectionString>
          <!-- We need to know if SQL Express is installed or not - This detects SQL Express as an intentional side effect -->
          <GetSQLEdition Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" SetReturnProperty="globalSQLEdition"></GetSQLEdition>
        </Method>
      </Request>
    </BrokerRequest>
    <!-- Tasks to perform on the Prereq Check Page -->
    <BrokerRequest Name="Prerequisite Check">
      <!-- Get the current language pack info if one is installed -->
      <Request Name="GetLangPackInfo" EstTime="1000" TimeOut="100000" UIName="#GatherLangPackInformation" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalIsIonLangPackInstalled>true</globalIsIonLangPackInstalled>
        </ConditionTrue>
        <Method>
          <GetRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalUpgradeLangPackGuid">
            <regPath>@globalBrandRegistryRoot/@\@globalPreviousVersion/@\LangPack</regPath>
            <keyValue>LangPackGuid</keyValue>
          </GetRegistryValue>
          <GetRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalUpgradeInstLangGuid">
            <regPath>@globalBrandRegistryRoot/@\@globalPreviousVersion/@\LangPack</regPath>
            <keyValue>InstLangGuid</keyValue>
          </GetRegistryValue>
        </Method>
      </Request>
      <Request Name="CheckRunningApps" EstTime="500" TimeOut="120000" UIName="#CheckForRunningApplications" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#DesignerisrunningPleasecloseth">
            <name>designer</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#DiagnosticsViewerisrunningPlea">
            <name>diagviewer</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#ManagementConsoleisrunningPlea">
            <name>managementconsole</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#RepGenisrunningPleaseclosethea">
            <name>repgen</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#VistaisrunningPleaseclosetheap">
            <name>vista</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#DeviceUpgraderisrunningPleasec">
            <name>upg_firm</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Taskpadisrunning">
            <name>IONTaskpad</name>
          </IsProcessClosed>
        </Method>
      </Request>
      <!-- On upgrade the Primary needs space for the config new/bak & Database backup-->
      <Request Name="CheckDiskSpaceGenericRequest" Library="InstallTools" Class="Installer.InstallRequests.CheckDiskSpaceGenericRequest" EstTime="1000" TimeOut="100000000" UIName="#CheckDiskSpace" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
          <globalPreviousVersion>7.0|7.0.1|7.2</globalPreviousVersion>
        </ConditionTrue>
        <folder>\config</folder>
        <!-- the folders are relative to globalProgramFileFolder -->
        <folder1>\config</folder1>
        <!-- need to count the config folder twice, once for config_bak, once for config_new -->
        <dbName>ION_Data</dbName>
        <dbName1>ION_Network</dbName1>
        <dbName2>ApplicationModules</dbName2>
        <!-- increased this to allow for buffer space -->
        <additionalSpace>2000</additionalSpace>
        <!-- in Mb -->
        <dbGrowthPercent>0.1</dbGrowthPercent>
      </Request>
      <!-- On upgrade the Primary needs space for the config new/bak & Database backup-->
      <Request Name="CheckDiskSpaceGenericRequest" Library="InstallTools" Class="Installer.InstallRequests.CheckDiskSpaceGenericRequest" EstTime="1000" TimeOut="100000000" UIName="#CheckDiskSpace" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionTrue>
        <folder>\config</folder>
        <!-- the folders are relative to globalProgramFileFolder -->
        <folder1>\config</folder1>
        <!-- need to count the config folder twice, once for config_bak, once for config_new -->
        <dbName>ION_Data</dbName>
        <dbName1>ION_Network</dbName1>
        <dbName2>ApplicationModules</dbName2>
        <!-- increased this to allow for buffer space -->
        <additionalSpace>2000</additionalSpace>
        <!-- in Mb -->
        <dbGrowthPercent>1.0</dbGrowthPercent>
      </Request>
      <Request Name="CheckDiskSpace" EstTime="1000" TimeOut="100000" UIName="#CheckDiskSpaceRequirement" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <!-- Calculate the total space needed depending on if the program files folder and the database folder both
               are on the same disk or not -->
          <CheckCombineDiskSpace Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Insufficientdiskspaceonthesele">
            <programFilesDir>@globalProgramFileFolder/@</programFilesDir>
            <programFilesRequiredSpaceInMb>5000</programFilesRequiredSpaceInMb>
            <databaseFolderDir>@globalDatabaseFolder/@</databaseFolderDir>
            <databaseFolderRequiredSpaceinMb>2000</databaseFolderRequiredSpaceinMb>
          </CheckCombineDiskSpace>
        </Method>
      </Request>
      <Request Name="CheckDiskSpace" EstTime="1000" TimeOut="100000" UIName="#CheckDiskSpaceRequirement" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CheckDiskSpace Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Insufficientdiskspaceonthesele">
            <drive>@globalProgramFileFolder</drive>
            <requiredSpaceInMb>3000</requiredSpaceInMb>
          </CheckDiskSpace>
        </Method>
      </Request>
      <Request Name="CheckDiskSpace" EstTime="1000" TimeOut="100000" UIName="#CheckDiskSpaceRequirement" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <CheckDiskSpace Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Insufficientdiskspaceonthesele">
            <drive>@globalProgramFileFolder</drive>
            <requiredSpaceInMb>600</requiredSpaceInMb>
          </CheckDiskSpace>
        </Method>
      </Request>
      <Request Name="CheckSqlAgentInstalled" EstTime="500" TimeOut="120000" UIName="#CheckSQLServerAgentInstallation" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsSQLExpress>false</globalIsSQLExpress>
        </ConditionTrue>
        <Method>
          <SQLServer_CheckSQLAgent Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#SQLAgentisnotinstalled">
            <dbName>@globalEEMDbServer</dbName>
            <JobType>CheckOnly</JobType>
          </SQLServer_CheckSQLAgent>
        </Method>
      </Request>
      <Request Name="CheckSQLServerConnection" EstTime="500" TimeOut="100000" UIName="#CheckSQLServerConnection" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer|ReportServer|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Errorsettingconnectionstring">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <VerifyConnection Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Errorvalidatingconnectionstring"></VerifyConnection>
          <!-- User Story #7430: Does this step need to be here when we remove Reporting Services? -->
          <GetSQLRegEntry Library="RSConfiguration" Class="Installer.InstallTools.ReportingServConfig" SetReturnProperty="globalSQLDataRoot">
            <SQLInstanceName>@globalEEMSqlInstanceName</SQLInstanceName>
            <keyName>SQLDataRoot</keyName>
          </GetSQLRegEntry>
        </Method>
      </Request>
      <Request Name="CheckSQLServerLocation" EstTime="500" TimeOut="100000" UIName="#CheckDatabaseLocation" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <IsDatabaseLocalOrClustered Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#DatabaseLocationInvalid">
            <machineName>@globalEEMDBName</machineName>
          </IsDatabaseLocalOrClustered>
        </Method>
      </Request>
      <Request Name="CheckSQLServerVersionEdition32bit" EstTime="500" TimeOut="100000" UIName="#Check32bitSQLServerVersionandE" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|ReportServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Errorsettingconnectionstring">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <CheckSqlEdition Library="DatabaseBusiness" Class="Installer.InstallTools.DBInstaller" UIMessageOnFail="#TheEditonoftheselectedSQLServe">
            <RequiredSQLEdition>Standard Edition|Enterprise Edition|Express Edition with Advanced Services|Express Edition|</RequiredSQLEdition>
          </CheckSqlEdition>
          <CheckSqlVersion Library="DatabaseBusiness" Class="Installer.InstallTools.DBInstaller" UIMessageOnFail="#TheVersionoftheselectedSQLServ">
            <RequiredSQLVersionString>10.0.1600.0</RequiredSQLVersionString>
          </CheckSqlVersion>
        </Method>
      </Request>
      <Request Name="CheckSQLServerVersionEdition64bit" EstTime="500" TimeOut="100000" UIName="#Check64bitSQLServerVersionandE" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|ReportServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Errorsettingconnectionstring">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <CheckSqlEdition Library="DatabaseBusiness" Class="Installer.InstallTools.DBInstaller" UIMessageOnFail="#TheEditonoftheselectedSQLServe">
            <RequiredSQLEdition>Standard Edition (64-bit)|Enterprise Edition (64-bit)|Express Edition with Advanced Services (64-bit)|Express Edition (64-bit)|</RequiredSQLEdition>
          </CheckSqlEdition>
          <CheckSqlVersion Library="DatabaseBusiness" Class="Installer.InstallTools.DBInstaller" UIMessageOnFail="#TheVersionoftheselectedSQLServ">
            <RequiredSQLVersionString>10.0.1600.0</RequiredSQLVersionString>
            <!-- SQL Server 2008 RTM is 10.0.1600.22 -->
          </CheckSqlVersion>
        </Method>
      </Request>
      <Request Name="CheckASPNET" EstTime="500" TimeOut="100000" UIName="#CheckASPNETRequirement" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|ReportServer|Client|Secondary|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CheckHKLMRegistyExisting Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#ASPNET4030319notfoundinRegistr">
            <regpath>SOFTWARE\Microsoft\ASP.NET\4.0.30319.0</regpath>
            <id>Path</id>
          </CheckHKLMRegistyExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#ASPNETnotinstalled">
            <serviceName>aspnet_state</serviceName>
            <machineName></machineName>
          </CheckWindowServiceExisting>
        </Method>
      </Request>
      <Request Name="CheckOS" Library="InstallTools" Class="Installer.InstallRequests.CheckOSRequest" EstTime="1000" TimeOut="100000" UIName="#CheckOperatingSystemRequiremen" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer|Client|ReportingClient|Secondary|AMSingleServer|AMWebApp|AMDatabase</globalSetupType>
        </ConditionTrue>
        <ValidOS>WindowsServer2008|Windows7|WindowsServer2008R2</ValidOS>
        <!-- The order in which the ServicePacks are arranged must match the order of the valid OS above.
             Ex. WindowsServer2003 requires SP2 etc. Also, a value MUST be entered and MUST NOT end with a trailing pipe.-->
        <ValidServicePacks>0|0|0</ValidServicePacks>
        <ValidArch>x32|x64</ValidArch>
        <!-- This will check to make sure that the detected Operating System is one of the supported editions
             Values should be separated by pipes (|)-->
        <InvalidEditions>Starter</InvalidEditions>
      </Request>
      <Request Name="CheckUserPrivileges" EstTime="1000" TimeOut="100000" UIName="#CheckUserPrivilegesRequirement" ProgressBar="Animation" ActionOnFail="Stop">
        <Method>
          <IsCurrentAdmin Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Adminprivilegeisrequired"></IsCurrentAdmin>
        </Method>
      </Request>
      <Request Name="CheckIONEDatabase" EstTime="500" TimeOut="100000" UIName="#CheckDatabaseServer" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Errorsettingconnectionstring">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <DatabaseExists Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#TheION_DataDatabasecouldnotbef">
            <dbName>ION_Data</dbName>
          </DatabaseExists>
          <DatabaseExists Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#TheION_NetworkDatabasecouldnot">
            <dbName>ION_Network</dbName>
          </DatabaseExists>
          <DatabaseExists Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#TheION_SystemLogDatabasecouldn">
            <dbName>ION_SystemLog</dbName>
          </DatabaseExists>
          <LoginExists Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#OneormoreSQLuserscouldnotbefou">
            <userName>ION</userName>
          </LoginExists>
          <!-- The step below has to do with RepGen configuration. -->
          <LoginExists Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#OneormoreSQLuserscouldnotbefou">
            <userName>Report</userName>
          </LoginExists>
        </Method>
      </Request>
      <Request Name="CheckIONEPrimary" EstTime="500" TimeOut="100000" UIName="#CheckPrimaryServer" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <FileExists Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CannotlocatethePrimaryFileshar">
            <sourcePath>\\@globalRemoteServer/@\ION-Ent\config</sourcePath>
            <sourceFile>DatabaseRegistry.reg</sourceFile>
          </FileExists>
          <IsFileWritable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#ThePrimaryfileshareisreadonly">
            <sourcePath>\\@globalRemoteServer/@\ION-Ent\config</sourcePath>
            <sourceFile>DatabaseRegistry.reg</sourceFile>
          </IsFileWritable>
          <CompareProductInfoVersion Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#ThePrimaryversionisnotcompatib">
            <prodInfoFile>\\@globalRemoteServer/@\ION-Ent\system\bin\ProductInfo.xml</prodInfoFile>
            <version>@globalDisplayVersion</version>
          </CompareProductInfoVersion>
        </Method>
      </Request>
      <Request Name="CheckDatabaseSetup" EstTime="500" TimeOut="100000" UIName="#CheckAppDatabaseServer" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>AMWebApp|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <DatabaseExists Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#DatabaseServercouldnotbeverifi">
            <dbName>ApplicationModules</dbName>
          </DatabaseExists>
        </Method>
      </Request>
      <Request Name="CheckSqlServerAccountPermission" EstTime="500" TimeOut="100000" UIName="#CheckSQLServerServiceAccount" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <CheckServiceWriteAccess Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#IncorrectSqlServerServiceAccount">
            <serviceName>@globalSQLServiceName/@</serviceName>
            <directory>@globalDatabaseFolder/@</directory>
          </CheckServiceWriteAccess>
          <CheckServiceWriteAccess Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#IncorrectSqlServerServiceAccount">
            <serviceName>@globalSQLServiceName/@</serviceName>
            <directory>%temp%</directory>
          </CheckServiceWriteAccess>
        </Method>
      </Request>
    </BrokerRequest>
    <!-- Tasks to perform on the Pre Upgrade Page -->
    <BrokerRequest Name="UpgradeTasksRequest">
      <!-- BEGIN: Database Deployment Dependencies -->
      <Request Name="InstallDatabaseDeploymentDependencies" EstTime="500" TimeOut="120000" UIName="#InstallDatabaseDeploymentDependencies" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <!--Need to create this folder so SSDT can deploy the database.-->
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Diagnostic</destPath>
          </CreateFolder>
          <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
            <folderName>@globalDatabaseFolder/@\Diagnostic</folderName>
          </GiveUsersReadWrite>
        </Method>
      </Request>
      <!-- IMPORTANT: This Request depends on SQL CLR Types (SQLSysClrTypes.msi) being installed which is already done earlier in the process. -->
      <Request Name="InstallDatabaseDeploymentDependencies" EstTime="500" TimeOut="1200000" UIName="#InstallDatabaseDeploymentDependencies" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <!--Need to create this folder so SSDT can deploy the database.-->
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\SystemLog</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\Data</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\Network</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\ApplicationModules</destPath>
          </CreateFolder>
          <!--Install dependencies-->
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\Database\dacframework.msi" /qn</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\Database\sqldom.msi" /qn</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <!-- END: Database Deployment Dependencies -->
      <Request Name="StopServices" EstTime="1000" TimeOut="100000" UIName="#StoppingServices" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- We have to stop Netman first as it relies on Component Identifier and Connection Manager to shut down -->
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLNetman</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StopEnterpriseServices Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#CouldnotstoponeormoreIONEnterp">
            <timeout>30</timeout>
            <regPath>@globalUpgradeFromRegKey/@\ServiceMetadata</regPath>
          </StopEnterpriseServices>
          <AreEnterpriseServicesStopped Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#CouldnotstoponeormoreIONEnterp">
            <regPath>@globalUpgradeFromRegKey/@\ServiceMetadata</regPath>
          </AreEnterpriseServicesStopped>
        </Method>
      </Request>
      <Request Name="StopAMServices" EstTime="1000" TimeOut="100000" UIName="#ConfigureServices" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary</globalSetupType>
          <globalPreviousVersion>7.0|7.0.1|7.2</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <!-- As a measure for 7.0 -> 7.0.1 upgrades only we need to disable the Application Host services to prevent them from restarting -->
          <!-- Necessary for 7.2 -> 7.2.1 upgrades as well -->
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>ProviderEngineHost</serviceName>
            <startupType>DISABLE</startupType>
          </ChangeServiceStartUp>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>DataServicesHost</serviceName>
            <startupType>DISABLE</startupType>
          </ChangeServiceStartUp>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>CoreServicesHost</serviceName>
            <startupType>DISABLE</startupType>
          </ChangeServiceStartUp>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>ProviderEngineHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>DataServicesHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>CoreServicesHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
        </Method>
      </Request>
      <!-- Remove old language pack-->
      <Request Name="RomoveOldLanguagePack" EstTime="1000" TimeOut="1000000" UIName="#RemovedoldLanguagePack" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalIsIonLangPackInstalled>true</globalIsIonLangPackInstalled>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {@globalUpgradeLangPackGuid/@} /qn </args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="RemovedoldLanguageInstaller" EstTime="1000" TimeOut="1000000" UIName="#RemovedoldLanguageInstaller" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalIsIonLangPackInstalled>true</globalIsIonLangPackInstalled>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {@globalUpgradeInstLangGuid/@} /qn </args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <!-- Uninstall Diagnostics Tool 3.1.1 -->
      <Request Name="CleanOldMSI" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>7.0.1</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {A2C1476F-5B13-42F7-8C0C-B68B16F1F366} /qn </args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="StopSQLAgent" EstTime="1000" TimeOut="100000" UIName="#StopSQLAgent" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SQLServer_CheckSQLAgent Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#CouldnotstopSQLAgent">
            <dbName>@globalEEMDbServer</dbName>
            <JobType>Stop</JobType>
          </SQLServer_CheckSQLAgent>
        </Method>
      </Request>
      <Request Name="BackupDatabases" EstTime="1000" TimeOut="0" UIName="#BackupDatabases" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseBackupFolder/@\Data</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseBackupFolder/@\Network</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseBackupFolder/@\ApplicationModules</destPath>
          </CreateFolder>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredsettingtheSQLt">
            <timeout>36000</timeout>
          </setSQLTimeout>
          <!--Delete the backup files if they already exists. This will prevent a failure if a failure occurred after a backup occured when testing
              testing with minimal disk space-->
          <DeleteFileIfExists Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <fileName>@globalDatabaseBackupFolder/@\Data\ION_Data_Install_@globalDisplayVersion/@.bak</fileName>
          </DeleteFileIfExists>
          <DeleteFileIfExists Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <fileName>@globalDatabaseBackupFolder/@\Network\ION_Network_Install_@globalDisplayVersion/@.bak</fileName>
          </DeleteFileIfExists>
          
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#UnabletobackuptheION_Datadatab">
            <sqlQuery>BACKUP DATABASE ION_Data TO DISK='@globalDatabaseBackupFolder/@\Data\ION_Data_Install_@globalDisplayVersion/@.bak'</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#UnabletobackuptheION_Networkda">
            <sqlQuery>BACKUP DATABASE ION_Network to DISK='@globalDatabaseBackupFolder/@\Network\ION_Network_Install_@globalDisplayVersion/@.bak'</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
        </Method>
      </Request>
      <Request Name="BackupApplicationsDatabase" EstTime="1000" TimeOut="0" UIName="#BackupApplicationsDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionFalse>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredsettingtheSQLt">
            <timeout>36000</timeout>
          </setSQLTimeout>
          <!--Delete the backup files if they already exists. This will prevent a failure if a failure occurred after a backup occured when testing
              testing with minimal disk space-->
          <DeleteFileIfExists Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <fileName>@globalDatabaseBackupFolder/@\ApplicationModules\ApplicationModules_Install_@globalDisplayVersion/@.bak</fileName>
          </DeleteFileIfExists>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Unabletobackuptheappmodsdb">
            <sqlQuery>BACKUP DATABASE ApplicationModules to DISK='@globalDatabaseBackupFolder/@\ApplicationModules\ApplicationModules_Install_@globalDisplayVersion/@.bak'</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
        </Method>
      </Request>
      <Request Name="BackupUserData" EstTime="10000" TimeOut="0" UIName="#BackupUserData" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionFalse>
          <globalSetupType>Client|Secondary|DbServer</globalSetupType>
        </ConditionFalse>
        <Method>
          <CopyFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcopymodbusschemaxml">
            <sourcePath>@globalProgramFileFolder/@\config\templates</sourcePath>
            <sourceFile>modbus-schema.xml</sourceFile>
            <destPath>@globalProgramFileFolder/@\config\templates</destPath>
            <destFile>modbus-schema.xml.bak</destFile>
          </CopyFile>
          <CopyFilesRecursivelyWithExclusion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotbackupconfigfolder">
            <sourceFolder>@globalProgramFileFolder/@\config</sourceFolder>
            <destFolder>@globalProgramFileFolder/@\config_bak_@globalDisplayVersion/@</destFolder>
            <overwrite>false</overwrite>
            <excludeFileTypes>.bak</excludeFileTypes>
          </CopyFilesRecursivelyWithExclusion>
        </Method>
      </Request>
      <Request Name="BackupUserData" EstTime="10000" TimeOut="0" UIName="#BackupUserData" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Client|Secondary|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <CopyFilesRecursivelyWithExclusion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotbackupconfigfolder">
            <sourceFolder>@globalProgramFileFolder/@\config</sourceFolder>
            <destFolder>@globalProgramFileFolder/@\config_bak_@globalDisplayVersion/@</destFolder>
            <overwrite>false</overwrite>
            <excludeFileTypes>.bak</excludeFileTypes>
          </CopyFilesRecursivelyWithExclusion>
        </Method>
      </Request>
      <Request Name="Backupframeworkxml" EstTime="10000" TimeOut="0" UIName="#Backupframeworkxml" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionFalse>
        <Method>
          <CopyFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcopyframeworkxml">
            <sourcePath>@globalProgramFileFolder/@\Applications\ApplicationFramework</sourcePath>
            <sourceFile>Framework.xml</sourceFile>
            <destPath>@globalProgramFileFolder/@\Applications\backups</destPath>
            <destFile>Framework_@globalPreviousVersion/@.xml</destFile>
          </CopyFile>
        </Method>
      </Request>
      <Request Name="AddIONMeasurements" EstTime="1000" TimeOut="0" UIName="#AddNewMeasurements" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredsettingtheSQLt">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredreseed">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION3_Quantity_Prep_Before_Upgrade.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredmeasuremap">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_RenameDefaultMeasurements.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredmeasuremap">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>50.DefaultMeasurementMap.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredreseedafter">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION3_Quantity_Reseed_After_Upgrade.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredreseedafter">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>01.CreateConflictHandler.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredreseedafter">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>01.udfDAL_ExtractNumberFromIonName.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredmeasurelabel">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>10.IRM_MeasurementLabel.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="PrepareIONDatabaseUpgrade" EstTime="1000" TimeOut="0" UIName="#PrepareIONDataforUpgrade" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredsettingtheSQLt">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <AddLogin2005 Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <userName>ionedsd</userName>
            <userPassword>exw1BStLAmzokMLd4uiXLouELuCl037YUD</userPassword>
          </AddLogin2005>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Unabletosetcompatibilitylevelo">
            <sqlQuery>EXEC sp_dbcmptlevel [ION_Data], 100</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Unabletosetautoshrinkoff">
            <sqlQuery>ALTER DATABASE [ION_Data] SET AUTO_SHRINK OFF</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_01.AddUpgradeHelperObjects.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_01b.AddCombineTimestampFunction.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_02.ConvertSourceIdColumn.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="PrepareIONDataLogUpgrade" EstTime="1000" TimeOut="0" UIName="#PrepareIONDataLogforUpgrade" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredsettingtheSQLt">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_03.DataLog2.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="ConfigureDBUpgradeRequest" Library="InstallTools" Class="Installer.InstallRequests.ConfigureDBUpgradeRequest" EstTime="1000" TimeOut="0" UIName="#UpgradeIONDataLogtable" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <progressQuerySource>SELECT [RowCount] = SUM(st.row_count) FROM sys.dm_db_partition_stats st WHERE object_name(object_id) = 'DataLog'</progressQuerySource>
        <progressQueryDest>SELECT [RowCount] = SUM(st.row_count) FROM sys.dm_db_partition_stats st WHERE object_name(object_id) = 'DataLog2'</progressQueryDest>
        <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
        <sqlScriptFile>ION5_03a.DataLog2.sql</sqlScriptFile>
        <dbName>ION_Data</dbName>
        <resolvedInVersion>5.0</resolvedInVersion>
        <sqlTimeout>345600</sqlTimeout>
        <!-- 48 hrs - This is an asynchronous call so the timeout val should be ignored - including just in case it's not -->
        <updateInterval>120000</updateInterval>
      </Request>
      <Request Name="DropOldDataLogAndStampTables" EstTime="1000" TimeOut="0" UIName="#DropOldDataLogAndStampTables" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredsettingtheSQLt">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_03b.DataLog2.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="ConfigureDBUpgradeRequest" Library="InstallTools" Class="Installer.InstallRequests.ConfigureDBUpgradeRequest" EstTime="1000" TimeOut="0" UIName="#RemoveDuplicateData" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <progressQuerySource>SELECT ISNULL(MAX(PairsToProcess),1) AS [RowCount] from dbo.tmpRemoveDuplicatesProgress WITH (NOLOCK)</progressQuerySource>
        <progressQueryDest>SELECT ISNULL(MAX(PairsToProcess-PairsLeftToProcess),0) AS [RowCount] from dbo.tmpRemoveDuplicatesProgress WITH (NOLOCK)</progressQueryDest>
        <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
        <sqlScriptFile>ION5_03c.DataLog2.sql</sqlScriptFile>
        <dbName>ION_Data</dbName>
        <resolvedInVersion>5.0</resolvedInVersion>
        <sqlTimeout>345600</sqlTimeout>
        <!-- 48 hrs - This is an asynchronous call so the timeout val should be ignored - including just in case it's not -->
        <updateInterval>120000</updateInterval>
      </Request>
      <Request Name="FinalizeIONDataLogUpgrade" EstTime="1000" TimeOut="0" UIName="#FinalizeIONDataLogUpgrade" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredsettingtheSQLt">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_03d.DataLog2.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="EventLog2Upgrade" EstTime="1000" TimeOut="0" UIName="#UpgradeIONEventLogtable" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_04.EventLog2.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="WaveformLog2Upgrade" EstTime="1000" TimeOut="0" UIName="#UpgradeIONWaveformLogtable" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_05.WaveformLog2.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="UpdateAffectedIONDatabaseObjects" EstTime="1000" TimeOut="0" UIName="#UpdateaffectedIONDataObjects" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_06.RecorderState.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_07.PQEvents.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_08.PopulateSourceQuantityTable.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_09.UpdateAffectedDatabaseObjects.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_10.UpdatePowerQualitySprocs.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_11.RemoveUpgradeHelperObjects.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_12.Finalize.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5_13.CreateUser.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_D">
            <query>UPDATE Registry SET Value = CONVERT(VARCHAR(100),GETDATE(),126) WHERE Name = 'LastUpdated'</query>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_D">
            <query>UPDATE Registry SET Value = '5.0' WHERE Name = 'Revision'</query>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.0</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <!-- 5.1 Scripts -->
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredwhileexecuting">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>ION5pt1_upgrade.sql</sqlScriptFile>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.1</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_D">
            <query>UPDATE Registry SET Value = CONVERT(VARCHAR(100),GETDATE(),126) WHERE Name = 'LastUpdated'</query>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.1</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_D">
            <query>UPDATE Registry SET Value = '5.1' WHERE Name = 'Revision'</query>
            <dbName>ION_Data</dbName>
            <resolvedInVersion>5.1</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="AddNOMMeasurements" EstTime="1000" TimeOut="0" UIName="#AddNewMeasurements" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredreseedNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM11_Meas_Prep_Before_Upgrade.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredmeasuremapNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_RenameDefaultMeasurements.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredmeasuremapNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>50.DefaultMeasurementMap.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredmeasurelabelNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>10.IRM_MeasurementLabel.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredmeasurestoreNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>45.DefaultMeasurementStore.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredreseedafterNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM11_Meas_Reseed_After_Upgrade.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredreseedafterNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>01.CreateConflictHandler.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_DeleteMeasurementHierarchy.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>01.CreateHierarchyInsertProcedures.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>10.RPT_MeasurementHierarchy.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>20.AddMeasurementHierarchyNodes.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>90.DeleteHierarchyInsertProcedures.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="UpgradeNOMDatabase" EstTime="1000" TimeOut="0" UIName="#UpgradeIONNetwork" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Unabletosetcompatibilitylevelo">
            <sqlQuery>EXEC sp_dbcmptlevel [ION_Network], 100</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Unabletosetautoshrinkoff">
            <sqlQuery>ALTER DATABASE [ION_Network] SET AUTO_SHRINK OFF</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_Upgrade.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_01.DropObsoletedObjects.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_02.AlterExistingObjects.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_03.AddNewObjects.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13_04.CreateUser.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <query>ALTER DATABASE [ION_Network] SET TRUSTWORTHY OFF</query>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredLDmeasureNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>02.DefaultLogicalDeviceTypes.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredLDmeasureNOM">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>03.DefaultLogicalDeviceTypeMeasurements.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <query>UPDATE Registry SET Value = CONVERT(VARCHAR(100),GETDATE(),126) WHERE Name = 'LastUpdated'</query>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <query>UPDATE Registry SET Value = '13.0' WHERE Name = 'Revision'</query>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.0</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <!-- 13.1 Scripts -->
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>NOM13.1_AlterExistingObjects.sql</sqlScriptFile>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.1</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <query>UPDATE Registry SET Value = CONVERT(VARCHAR(100),GETDATE(),126) WHERE Name = 'LastUpdated'</query>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.1</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_N">
            <query>UPDATE Registry SET Value = '13.1' WHERE Name = 'Revision'</query>
            <dbName>ION_Network</dbName>
            <resolvedInVersion>13.1</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <Request Name="UpgradeSyslogDatabase" EstTime="1000" TimeOut="0" UIName="#UpgradeIONSystemLog" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>345600</timeout>
          </setSQLTimeout>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Unabletosetcompatibilitylevelo">
            <sqlQuery>EXEC sp_dbcmptlevel [ION_SystemLog], 100</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Unabletosetautoshrinkoff">
            <sqlQuery>ALTER DATABASE [ION_SystemLog] SET AUTO_SHRINK OFF</sqlQuery>
            <dbName>master</dbName>
          </RunQuery>
          <ExecuteScriptWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_S">
            <sqlScriptPath>@globalSRCDIR/@\scripts</sqlScriptPath>
            <sqlScriptFile>SYSLOG7_Upgrade.sql</sqlScriptFile>
            <dbName>ION_SystemLog</dbName>
            <resolvedInVersion>7.0</resolvedInVersion>
          </ExecuteScriptWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_S">
            <query>UPDATE Registry SET Value = CONVERT(VARCHAR(100),GETDATE(),126) WHERE Name = 'LastUpdated'</query>
            <dbName>ION_SystemLog</dbName>
            <resolvedInVersion>7.0</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
          <ExecuteQueryWhenSchemaVersionLessThan Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#AproblemoccurredupgradingION_S">
            <query>UPDATE Registry SET Value = '7.0' WHERE Name = 'Revision'</query>
            <dbName>ION_SystemLog</dbName>
            <resolvedInVersion>7.0</resolvedInVersion>
          </ExecuteQueryWhenSchemaVersionLessThan>
        </Method>
      </Request>
      <!--BEGIN: SSDT Deployments/Upgrades-->

      <!-- ION database deployment :: Begin-->
      <Request Name="ScriptIONDatabasesWindowsAuthX64" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--Need to create this folder so SSDT can deploy the database.-->
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Diagnostic</destPath>
          </CreateFolder>
          <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
            <folderName>@globalDatabaseFolder/@\Diagnostic</folderName>
          </GiveUsersReadWrite>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
          <!--ApplicationModules-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ScriptIONDatabasesWindowsAuthX86" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--Need to create this folder so SSDT can deploy the database.-->
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Diagnostic</destPath>
          </CreateFolder>
          <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
            <folderName>@globalDatabaseFolder/@\Diagnostic</folderName>
          </GiveUsersReadWrite>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
          <!--ApplicationModules-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="SetupUserPermissions" EstTime="500" TimeOut="600000" UIName="#ConfigureUserPermissions" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "@globalDatabaseFolder/@" /T /E /C /G "NT AUTHORITY\SYSTEM":F</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CreateIONDatabasesWindowsAuth" EstTime="500" TimeOut="1200000" UIName="#CreateDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <!--ION_Data-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Data</filePath>
            <mdffileName>ION_Data.mdf</mdffileName>
            <ldffileName>ION_Data.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ION_Data" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Data.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_Network-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Network</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Network</filePath>
            <mdffileName>ION_Network.mdf</mdffileName>
            <ldffileName>ION_Network.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ION_Network" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Network.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_SystemLog-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_SystemLog</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\SystemLog</filePath>
            <mdffileName>ION_SystemLog.mdf</mdffileName>
            <ldffileName>ION_SystemLog.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ION_SystemLog" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ApplicationModules-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ApplicationModules</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalSQLDataRoot/@\DATA</filePath>
            <mdffileName>ApplicationModules.mdf</mdffileName>
            <ldffileName>ApplicationModules_log.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ApplicationModules" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" -o "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
        </Method>
      </Request>
      <!--SQL Server Auth-->
      <Request Name="ScriptIONDatabasesSqlAuthX64" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
          <!--ApplicationModules-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%PROGRAMFILES(X86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ScriptIONDatabasesSqlAuthX86" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
          <!--ApplicationModules-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%PROGRAMFILES%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalSRCDIR/@\SetupSupport\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CreateDatabaseSqlAuth" EstTime="500" TimeOut="6000000" UIName="#CreateDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <!--ION_Data-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Data</filePath>
            <mdffileName>ION_Data.mdf</mdffileName>
            <ldffileName>ION_Data.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ION_Data" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Data.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_Network-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Network</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Network</filePath>
            <mdffileName>ION_Network.mdf</mdffileName>
            <ldffileName>ION_Network.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ION_Network" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Network.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_SystemLog-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_SystemLog</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\SystemLog</filePath>
            <mdffileName>ION_SystemLog.mdf</mdffileName>
            <ldffileName>ION_SystemLog.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ION_SystemLog" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ApplicationModules-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ApplicationModules</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalSQLDataRoot/@\DATA</filePath>
            <mdffileName>ApplicationModules.mdf</mdffileName>
            <ldffileName>ApplicationModules_log.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ApplicationModules" -v DefaultDataPath="@globalProgramFileFolder/@\" -v DefaultLogPath="@globalProgramFileFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" -o "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
        </Method>
      </Request>
      <!-- ION database deployment :: End-->
      <!--END: SSDT Deployments/Upgrades-->
      <Request Name="VerifyDatabases" EstTime="1000" TimeOut="0" UIName="#VerifyDatabases" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#CouldnotconnecttoReportServerD">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <VerifyDatabaseSchemaVersion Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#TheION_SystemLogtablewasnotupg">
            <dbName>ION_SystemLog</dbName>
            <expectedValue>8</expectedValue>
          </VerifyDatabaseSchemaVersion>
          <VerifyDatabaseSchemaVersion Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#TheION_Networktablewasnotupgra">
            <dbName>ION_Network</dbName>
            <expectedValue>15</expectedValue>
          </VerifyDatabaseSchemaVersion>
          <VerifyDatabaseSchemaVersion Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#TheION_Datatablewasnotupgraded">
            <dbName>ION_Data</dbName>
            <expectedValue>7</expectedValue>
          </VerifyDatabaseSchemaVersion>
          <!--Now check the log files for errors-->
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONDataLogError">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ION_Data.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONNetworkLogError">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ION_Network.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONSystemLogError">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#TheApplicationModulesDatabasec">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ApplicationModules.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
        </Method>
      </Request>
      <Request Name="UnregisterComponents" EstTime="1000" TimeOut="100000" UIName="#UnregisterComponents" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary|Client</globalSetupType>
          <globalPreviousVersion>7.0|7.0.1|7.2</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ModbusExtensions.Dialogue.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NOMRegistrar.dll" /unregister</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="UnregisterComponentsDBServer" EstTime="1000" TimeOut="100000" UIName="#UnregisterComponents" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>DbServer</globalSetupType>
          <globalPreviousVersion>7.0|7.0.1|7.2</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NOMRegistrar.dll" /unregister</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="UnregisterOldComponents" EstTime="1000" TimeOut="100000" UIName="#UnregisterComponents" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary|Client</globalSetupType>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ModbusExtensions.Dialogue.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\NOMRegistrar.tlb"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="UnregisterOldComponentsDBServer" EstTime="1000" TimeOut="100000" UIName="#UnregisterComponents" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>DbServer</globalSetupType>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\NOMRegistrar.tlb"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CleanOldMSI" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>7.0.1</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {297880E1-77FA-4CE3-AC18-4678FC4A58A1} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CleanOldMSI" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>7.0</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {F147C99F-22B6-4C9B-9898-53D26E48F50E} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CleanOldMSI" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {EDDDC288-B96F-4B47-8079-4E953780A2BB} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
        </Method>
      </Request>
      
      <!-- Remove AppModsRPService & AppModsSecurityTokenService and their virtual roots -->
      <Request Name="CleanOldMSI" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>7.2</globalPreviousVersion>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>ReportServer|DbServer|Client|ReportingClient|Secondary|PrimaryOnly</globalSetupType>
        </ConditionFalse>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {A1551CE3-62C6-4757-AA16-8403AA2D42D5} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {B76948C2-BC3C-4EE7-9905-C9818B3A8800} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CleanOldMSI" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>7.0.1</globalPreviousVersion>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>ReportServer|DbServer|Client|ReportingClient|Secondary|PrimaryOnly</globalSetupType>
        </ConditionFalse>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {59812EAD-C49A-4E5B-ADDC-285407E30248} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {7FFC44EB-B1C2-4CE0-9487-D22A7FD192FC} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CleanOldMSI" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>7.0</globalPreviousVersion>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>ReportServer|DbServer|Client|ReportingClient|Secondary|PrimaryOnly</globalSetupType>
        </ConditionFalse>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {B6052041-4F93-4EA3-B952-B910194D48A1} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x {85248FCE-9BE6-4983-BEC0-AFC4291ED160} /qn REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL="DisableShutdown"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RemoveVirtualDirectory" EstTime="500" TimeOut="6000000" UIName="#PrepareFiles" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>7.0|7.0.1|7.2</globalPreviousVersion>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <nameDirectory>SecurityTokenService</nameDirectory>
          </DeleteVirtualDirectory>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <nameDirectory>RPService</nameDirectory>
          </DeleteVirtualDirectory>      
        </Method>
      </Request>
     <Request Name="RemoveExtraFiles" EstTime="500" TimeOut="1200000" UIName="#PrepareFiles" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>@globalProgramFileFolder/@\Applications\AMSecurityTokenService</destPath>
          </DeleteFolder>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>@globalProgramFileFolder/@\Applications\RPService</destPath>
          </DeleteFolder>
        </Method>
      </Request>
      <!-- END: Remove AppModsRPService & AppModsSecurityTokenService and their virtual roots -->
      
      <!--Remove old start menu and desktop shortcuts from 7.xx versions previous to 7.2-->
      <Request Name="Removeshortcuts" EstTime="500" TimeOut="1200000" UIName="#Removeshortcuts" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\StruxureWare Power Monitoring\Web Applications.url</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\StruxureWare Power Monitoring\Web Applications.url</shortcutLocation>
          </RemoveWindowsShortcut>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>%PUBLIC%\Desktop\StruxureWare Power Monitoring</destPath>
          </DeleteFolder>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\StruxureWare Power Monitoring</destPath>
          </DeleteFolder>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| attrib -R "@globalProgramFileFolder/@\Uninst_@globalInstallProductName/@\*.*" /S /D</args>
          </RunExecutable>
          <!--Rename old InstallInfo.xml on upgrades to at least allow the uninstall directory to be updated once-->
          <RenameFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <sourcePath>@globalProgramFileFolder/@\Uninst_@globalInstallProductName/@</sourcePath>
            <sourceFile>InstallInfo.xml</sourceFile>
            <destPath>@globalProgramFileFolder/@\Uninst_@globalInstallProductName/@</destPath>
            <destFile>InstallInfo_@globalPreviousVersion/@.xml</destFile>
          </RenameFile>
        </Method>
      </Request>
    </BrokerRequest>
    <BrokerRequest Name="InstallMsi">
      <!--This broker request only contains one request-->
      <Request Name="LaunchMsiRequest" Library="InstallTools" Class="Installer.InstallRequests.LaunchMsiRequest" EstTime="0" TimeOut="0" UIName="#Deployingfilestosystem" ProgressBar="Progress" ActionOnFail="Prompt">
        <MsiFile Name="EverythingElse_x86.msi" Path="Installers" SizeInMB="62" ProductGUID="F43B85B5-246A-4735-8A0A-CD47CBBC3BB8" UpgradeGUID="C51286FA-A9C9-4FFE-9018-A208B7DFB9B5">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\Translators_x86.msi" SizeInMB="2" ProductGUID="D7852924-3B84-4C05-954F-1C5FB693B710">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <globalSetupType>ReportingClient</globalSetupType>
            <!-- If this condition true, this msi file will be skipped -->
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\DevExpress_x86.msi" SizeInMB="2" ProductGUID="91CB46A4-1BA8-4978-8291-60C0C60BC998">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\ManagementTools_x86.msi" SizeInMB="2" ProductGUID="6AE0BB0C-088A-4809-BBD9-3604650CA23C">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>AMSingleServer|AMDatabase|AMWebApp|AMDSD</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\Services_x86.msi" SizeInMB="1" ProductGUID="1B072C06-A3A2-4A94-ACE3-B9AEC00F74D9">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>    
        <MsiFile Name="Installers\mdi_x86.msi" SizeInMB="2" ProductGUID="DE783797-5842-4E60-B74A-938E2A2526D4">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\MSDEUpgrader_x86.msi" SizeInMB="2" ProductGUID="8EC72A1E-47C8-4F4D-B827-C6B3E8A282AD">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\ReportDataService_x86.msi" SizeInMB="13" ProductGUID="010DF696-64FC-4869-8001-88D6D97025C8">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\WebServices_x86.msi" SizeInMB="13" ProductGUID="4128BC25-E7AB-43C9-97D1-CF32FCF133AF">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\WebReporter_x86.msi" SizeInMB="13" ProductGUID="878238E7-17A6-4048-86B3-9C213CA6DFF6">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\webreach_x86.msi" SizeInMB="2" ProductGUID="3E3998CA-29D8-4991-98EC-BF4614EB1B27">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\DTS_x86.msi" SizeInMB="2" ProductGUID="968A2B60-FCEB-452C-8012-793542260694">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>ReportingClient</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\HierarchyManager_x86.msi" SizeInMB="1" ProductGUID="41B7CE67-4696-44EC-867B-2AD1AFBAB480">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>Client|ReportingClient|Secondary|PrimaryOnly</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder/@\Applications
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\HierarchyTemplate_x86.msi" SizeInMB="1" ProductGUID="C05F0BFF-2983-44C9-904B-868C6557D95E">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>Client|ReportingClient|Secondary|PrimaryOnly</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder/@\Applications
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
        <MsiFile Name="Installers\HierarchyConfig_x86.msi" SizeInMB="1" ProductGUID="9481B739-F422-44E4-AAE5-7DC4C2E94ED5">
          <!-- If there are multiple msi to be installer, user multiple MsiFile, still inside one request -->
          <!--When add a new MsiFile, remember to add the ProductGUID into Product.xml ProductGuid Element-->
          <MsiFileRelativePath>
            <!--MsiFileRelativePath is optional. If it is not existing, Installer will look for the same folder as Setup.exe.
                if it is existing, the installer will look up in the relative path described in this XElement-->
          </MsiFileRelativePath>
          <ConditionFalse>
            <!-- If this condition true, this msi file will be skipped -->
            <globalSetupType>Client|ReportingClient|Secondary|PrimaryOnly</globalSetupType>
          </ConditionFalse>
          <ConditionTrue>
            <!-- If this condition true, this msi file will be installed -->
          </ConditionTrue>
          <OverrideCommand>
            <!--If OverrideCommand is not empty, this command will be used instead of all the user input setup information-->
            <!--In most cases, this OverrideCommand is for test or debug purpose only, in release build, this tag should either empty or disappear-->
          </OverrideCommand>
          <CommandLine>
            <!-- The command line to launch msi -->
            <ADDLOCAL>
              <!-- This XElement will add .... ADDLOCAL="XXX" ... in the command line -->
              <!-- All conditions below will be checked. All conditions which is true will be add into command line -->
            </ADDLOCAL>
            <PRODUCT_REG_LOCATION>
              <!-- in this case, the globalvar "globalProgramFileFolder" will be add to command line as ... INSTALLDIR="xxx"... -->
              @globalProgramFileFolder/@\Applications
            </PRODUCT_REG_LOCATION>
            <CUSTOMER_NAME>
              @globalUserName
            </CUSTOMER_NAME>
            <COMPANY_NAME>
              @globalCompanyName
            </COMPANY_NAME>
            <REBOOT>
              ReallySuppress
            </REBOOT>
          </CommandLine>
        </MsiFile>
      </Request>
    </BrokerRequest>
    <BrokerRequest Name="Configuration">
      <Request Name="InstallDatabaseDeploymentDependencies" EstTime="500" TimeOut="120000" UIName="#InstallDatabaseDeploymentDependencies" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <!--Need to create this folder so SSDT can deploy the database.-->
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Diagnostic</destPath>
          </CreateFolder>
          <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
            <folderName>@globalDatabaseFolder/@\Diagnostic</folderName>
          </GiveUsersReadWrite>
        </Method>
      </Request>
      <Request Name="RemoveObsoleteRegistryKeys" EstTime="500" TimeOut="100000" UIName="#RemoveObsoleteRegistryKeys" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <!-- This removes the old 6.0 InstallShield wrapper ARP value -->
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <regPath>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{@globalUpgradeFromGuid/@}</regPath>
          </DeleteRegPath>
        </Method>
      </Request>
      <Request Name="CopyOldRegistry" EstTime="500" TimeOut="100000" UIName="#RetainRegistrySettings" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <CopyRegistryTree Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <startKey>@globalBrandRegistryRoot/@</startKey>
            <keyNameToCopy>@globalPreviousVersion/@</keyNameToCopy>
            <newKeyName>@globalDisplayVersion/@</newKeyName>
            <deleteDonorKey>false</deleteDonorKey>
          </CopyRegistryTree>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\ION Enterprise.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\ION Enterprise.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>ServicePack</name>
            <value>0</value>
          </AddDWORDToRegistry>
        </Method>
      </Request>
      <Request Name="CleanUpWebReach" EstTime="500" TimeOut="100000" UIName="#ConfigureWebReach" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <!-- For upgrades we need to delete the WebReach virtual directory and recreate it -->
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>ION</nameDirectory>
          </DeleteVirtualDirectory>
        </Method>
      </Request>
      <Request Name="UpdateRegistry" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <AppendToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotupdatePATHvalue">
            <regKey>SYSTEM\CurrentControlSet\Control\Session Manager\Environment</regKey>
            <regName>Path</regName>
            <appValue>@globalProgramFileFolder/@\system\bin</appValue>
          </AppendToRegistry>
        </Method>
      </Request>
      <Request Name="UpdateRegistry" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetFileVersionReg Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <regKey>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</regKey>
            <regName>Build</regName>
            <filePath>@globalProgramFileFolder/@\system\bin</filePath>
            <fileName>Administration.dll</fileName>
            <defaultText>Unavailable</defaultText>
          </SetFileVersionReg>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>ServicePack</name>
            <value>0</value>
          </AddDWORDToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>SPBuild</name>
            <value>0</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>UpdateProductGUID</name>
            <value>BF2799A6-7166-4C63-9258-B4E76782F936</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>HelpFile_ION</name>
            <value>Help.chm</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>HelpFile_CommissioningGuide</name>
            <value>Installation Guide.pdf</value>
          </AddStringToRegistry>
          <SetProductRegKey Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</value>
          </SetProductRegKey>
          <SetInstallDir Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalProgramFileFolder</value>
          </SetInstallDir>
          <SetServicePack Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>0</value>
          </SetServicePack>
          <SetWebReachRootName Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>ION</value>
          </SetWebReachRootName>
          <Setup Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <setupType>Primary</setupType>
            <!-- Primary & Distrib Primary are both a 'Primary' SetupType -->
            <primaryMachineName>@globalMachineName</primaryMachineName>
            <networkShareName>ION-Ent</networkShareName>
            <companyAcronym>ION</companyAcronym>
            <companyFormal>@globalBrandCompanyName</companyFormal>
            <companyInformal>@globalBrandCompanyName</companyInformal>
            <sourceDirectory>C:\</sourceDirectory>
            <registeredUser>@globalUserName</registeredUser>
            <registeredCompany>@globalCompanyName</registeredCompany>
            <copyright>Copyright 1993 - 2013 @globalBrandCompanyName/@</copyright>
            <nomDbName>ION_Network</nomDbName>
            <serverName>@globalEEMDbServer</serverName>
            <appVDir>@globalVirtualRoot</appVDir>
            <productFormal>@globalBrandProductFormalName/@</productFormal>
          </Setup>
        </Method>
      </Request>
      <Request Name="UpdateRegistryClient" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Progress" ActionOnFail="Continue">
        <!-- primaryMachineName and serverName values are differtent for these setup types-->
        <ConditionTrue>
          <globalSetupType>Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>Build</name>
            <value>@globalBuildNumber</value>
          </AddStringToRegistry>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>ServicePack</name>
            <value>0</value>
          </AddDWORDToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>SPBuild</name>
            <value>0</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>UpdateProductGUID</name>
            <value>BF2799A6-7166-4C63-9258-B4E76782F936</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>HelpFile_ION</name>
            <value>Help.chm</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>HelpFile_CommissioningGuide</name>
            <value>Installation Guide.pdf</value>
          </AddStringToRegistry>
        </Method>
      </Request>
      <Request Name="UpdateRegistryClient" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Progress" ActionOnFail="Continue">
        <!-- primaryMachineName and serverName values are differtent for these setup types-->
        <ConditionTrue>
          <globalSetupType>Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetProductRegKey Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</value>
          </SetProductRegKey>
          <SetInstallDir Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalProgramFileFolder</value>
          </SetInstallDir>
          <SetServicePack Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>0</value>
          </SetServicePack>
          <SetWebReachRootName Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>ION</value>
          </SetWebReachRootName>
          <Setup Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <setupType>Secondary</setupType>
            <primaryMachineName>@globalRemoteServer</primaryMachineName>
            <networkShareName>ION-Ent</networkShareName>
            <companyAcronym>ION</companyAcronym>
            <companyFormal>@globalBrandCompanyName</companyFormal>
            <companyInformal>@globalBrandCompanyName</companyInformal>
            <sourceDirectory>C:\</sourceDirectory>
            <registeredUser>@globalUserName</registeredUser>
            <registeredCompany>@globalCompanyName</registeredCompany>
            <copyright>Copyright 1993 - 2012 @globalBrandCompanyName/@</copyright>
            <nomDbName>ION_Network</nomDbName>
            <serverName></serverName>
            <appVDir>@globalVirtualRoot</appVDir>
            <productFormal>@globalBrandProductFormalName/@</productFormal>
          </Setup>
          <AddDWORDToRegistryIfNotExist Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>ConnectedThreadPoolSize</name>
            <value>200</value>
          </AddDWORDToRegistryIfNotExist>
        </Method>
      </Request>
      <Request Name="UpdateRegistryClient" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Progress" ActionOnFail="Continue">
        <!-- primaryMachineName and serverName values are differtent for these setup types-->
        <ConditionTrue>
          <globalSetupType>Client</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetProductRegKey Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</value>
          </SetProductRegKey>
          <SetInstallDir Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalProgramFileFolder</value>
          </SetInstallDir>
          <SetServicePack Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>0</value>
          </SetServicePack>
          <SetWebReachRootName Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>ION</value>
          </SetWebReachRootName>
          <Setup Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <setupType>Client</setupType>
            <primaryMachineName>@globalRemoteServer</primaryMachineName>
            <networkShareName>ION-Ent</networkShareName>
            <companyAcronym>ION</companyAcronym>
            <companyFormal>@globalBrandCompanyName</companyFormal>
            <companyInformal>@globalBrandCompanyName</companyInformal>
            <sourceDirectory>C:\</sourceDirectory>
            <registeredUser>@globalUserName</registeredUser>
            <registeredCompany>@globalCompanyName</registeredCompany>
            <copyright>Copyright 1993 - 2012 @globalBrandCompanyName/@</copyright>
            <nomDbName>ION_Network</nomDbName>
            <serverName></serverName>
            <appVDir>@globalVirtualRoot</appVDir>
            <productFormal>@globalBrandProductFormalName/@</productFormal>
          </Setup>
        </Method>
      </Request>
      <Request Name="UpdateRegistryClient" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Progress" ActionOnFail="Continue">
        <!-- primaryMachineName and serverName values are differtent for these setup types-->
        <ConditionTrue>
          <globalSetupType>ReportingClient</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetProductRegKey Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</value>
          </SetProductRegKey>
          <SetInstallDir Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalProgramFileFolder</value>
          </SetInstallDir>
          <SetServicePack Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>0</value>
          </SetServicePack>
          <SetWebReachRootName Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>ION</value>
          </SetWebReachRootName>
          <Setup Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <setupType>ReportingClient</setupType>
            <primaryMachineName>@globalRemoteServer</primaryMachineName>
            <networkShareName>ION-Ent</networkShareName>
            <companyAcronym>ION</companyAcronym>
            <companyFormal>@globalBrandCompanyName</companyFormal>
            <companyInformal>@globalBrandCompanyName</companyInformal>
            <sourceDirectory>C:\</sourceDirectory>
            <registeredUser>@globalUserName</registeredUser>
            <registeredCompany>@globalCompanyName</registeredCompany>
            <copyright>Copyright 1993 - 2012 @globalBrandCompanyName/@</copyright>
            <nomDbName>ION_Network</nomDbName>
            <serverName></serverName>
            <appVDir>@globalVirtualRoot</appVDir>
            <productFormal>@globalBrandProductFormalName/@</productFormal>
          </Setup>
        </Method>
      </Request>
      <Request Name="UpdateRegistryDatabase" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Progress" ActionOnFail="Continue">
        <!-- primaryMachineName and serverName values are differtent for these setup types-->
        <ConditionTrue>
          <globalSetupType>DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>Build</name>
            <value>@globalBuildNumber</value>
          </AddStringToRegistry>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>ServicePack</name>
            <value>0</value>
          </AddDWORDToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>SPBuild</name>
            <value>0</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>UpdateProductGUID</name>
            <value>BF2799A6-7166-4C63-9258-B4E76782F936</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>HelpFile_ION</name>
            <value>Help.chm</value>
          </AddStringToRegistry>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>HelpFile_CommissioningGuide</name>
            <value>Installation Guide.pdf</value>
          </AddStringToRegistry>
          <SetProductRegKey Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</value>
          </SetProductRegKey>
          <SetInstallDir Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>@globalProgramFileFolder</value>
          </SetInstallDir>
          <SetServicePack Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>0</value>
          </SetServicePack>
          <SetWebReachRootName Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <value>ION</value>
          </SetWebReachRootName>
          <Setup Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <setupType>DbServer</setupType>
            <primaryMachineName></primaryMachineName>
            <networkShareName>ION-Ent</networkShareName>
            <companyAcronym>ION</companyAcronym>
            <companyFormal>@globalBrandCompanyName</companyFormal>
            <companyInformal>@globalBrandCompanyName</companyInformal>
            <sourceDirectory>C:\</sourceDirectory>
            <registeredUser>@globalUserName</registeredUser>
            <registeredCompany>@globalCompanyName</registeredCompany>
            <copyright>Copyright 1993 - 2012 @globalBrandCompanyName/@</copyright>
            <nomDbName>ION_Network</nomDbName>
            <serverName>@globalEEMDbServer</serverName>
            <appVDir>@globalVirtualRoot</appVDir>
            <productFormal>@globalBrandProductFormalName/@</productFormal>
          </Setup>
        </Method>
      </Request>
      <Request Name="RetainUserData" EstTime="10000" TimeOut="90000000" UIName="#RetainingCustomData" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <!-- First create a backup of the config folder at config_new_7.0-->
          <CopyFilesRecursivelyWithExclusion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotbackupconfigfolder">
            <sourceFolder>@globalProgramFileFolder/@\config</sourceFolder>
            <destFolder>@globalProgramFileFolder/@\config_new_@globalDisplayVersion/@</destFolder>
            <overwrite>false</overwrite>
            <excludeFileTypes>.bak</excludeFileTypes>
          </CopyFilesRecursivelyWithExclusion>
          <!-- Next copy the config_bak over the config, to restore the custom config -->
          <CopyFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotbackupconfig_baktoconf">
            <sourceFolder>@globalProgramFileFolder/@\config_bak_@globalDisplayVersion/@</sourceFolder>
            <destFolder>@globalProgramFileFolder/@\config</destFolder>
            <appendTimestamp>false</appendTimestamp>
          </CopyFolder>
          <!-- Copy the config_new images over the config -->
          <CopyFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotbackupconfigurationdia">
            <sourceFolder>@globalProgramFileFolder/@\config_new_@globalDisplayVersion/@\diagrams\images</sourceFolder>
            <destFolder>@globalProgramFileFolder/@\config\diagrams\images</destFolder>
            <appendTimestamp>false</appendTimestamp>
          </CopyFolder>
          <!-- Now remove the config_bak since it contains nothing we need -->
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotremovebackupfilesconfi">
            <destPath>@globalProgramFileFolder/@\config_bak_@globalDisplayVersion/@</destPath>
          </DeleteFolder>
        </Method>
      </Request>
      <Request Name="ImportDBRegistry" EstTime="500" TimeOut="100000" UIName="#ImportDatabaseRegistry" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>regedit.exe</cmd>
            <args>/is "\\@globalRemoteServer/@\ION-Ent\config\DatabaseRegistry.reg"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallIISServerRole2008R2" EstTime="800" TimeOut="1800000" UIName="#ConfigureWindowsIISRole" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalOSType>Windows7|WindowsServer2008R2</globalOSType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableOn64bitOS Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>DISM.exe</cmd>
            <args>/Online /Enable-Feature /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-ASP /FeatureName:IIS-ASPNET /FeatureName:IIS-BasicAuthentication /FeatureName:IIS-CGI /FeatureName:IIS-ClientCertificateMappingAuthentication /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-CustomLogging /FeatureName:IIS-DefaultDocument /FeatureName:IIS-DigestAuthentication /FeatureName:IIS-DirectoryBrowsing /FeatureName:IIS-FTPExtensibility /FeatureName:IIS-FTPServer /FeatureName:IIS-FTPSvc /FeatureName:IIS-HealthAndDiagnostics /FeatureName:IIS-HostableWebCore /FeatureName:IIS-HttpCompressionDynamic /FeatureName:IIS-HttpCompressionStatic /FeatureName:IIS-HttpErrors /FeatureName:IIS-HttpLogging /FeatureName:IIS-HttpRedirect /FeatureName:IIS-HttpTracing /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-IISCertificateMappingAuthentication /FeatureName:IIS-IPSecurity /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-LegacyScripts /FeatureName:IIS-LegacySnapIn /FeatureName:IIS-LoggingLibraries /FeatureName:IIS-ManagementConsole /FeatureName:IIS-ManagementScriptingTools /FeatureName:IIS-ManagementService /FeatureName:IIS-Metabase /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-ODBCLogging /FeatureName:IIS-Performance /FeatureName:IIS-RequestFiltering /FeatureName:IIS-RequestMonitor /FeatureName:IIS-Security /FeatureName:IIS-ServerSideIncludes /FeatureName:IIS-StaticContent /FeatureName:IIS-URLAuthorization /FeatureName:IIS-WebDAV /FeatureName:IIS-WebServer /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-WebServerRole /FeatureName:IIS-WindowsAuthentication /FeatureName:IIS-WMICompatibility /FeatureName:WAS-ConfigurationAPI /FeatureName:WAS-NetFxEnvironment /FeatureName:WAS-ProcessModel /FeatureName:WAS-WindowsActivationService</args>
          </RunExecutableOn64bitOS>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-iru</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallIISServerRoleWin7x86" EstTime="800" TimeOut="1800000" UIName="#ConfigureWindowsIISRole" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalOSType>Windows7|WindowsServer2008R2</globalOSType>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableOn64bitOS Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>DISM.exe</cmd>
            <args>/Online /Enable-Feature /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-ASP /FeatureName:IIS-ASPNET /FeatureName:IIS-BasicAuthentication /FeatureName:IIS-CGI /FeatureName:IIS-ClientCertificateMappingAuthentication /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-CustomLogging /FeatureName:IIS-DefaultDocument /FeatureName:IIS-DigestAuthentication /FeatureName:IIS-DirectoryBrowsing /FeatureName:IIS-FTPExtensibility /FeatureName:IIS-FTPServer /FeatureName:IIS-FTPSvc /FeatureName:IIS-HealthAndDiagnostics /FeatureName:IIS-HostableWebCore /FeatureName:IIS-HttpCompressionDynamic /FeatureName:IIS-HttpCompressionStatic /FeatureName:IIS-HttpErrors /FeatureName:IIS-HttpLogging /FeatureName:IIS-HttpRedirect /FeatureName:IIS-HttpTracing /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-IISCertificateMappingAuthentication /FeatureName:IIS-IPSecurity /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-LegacyScripts /FeatureName:IIS-LegacySnapIn /FeatureName:IIS-LoggingLibraries /FeatureName:IIS-ManagementConsole /FeatureName:IIS-ManagementScriptingTools /FeatureName:IIS-ManagementService /FeatureName:IIS-Metabase /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-ODBCLogging /FeatureName:IIS-Performance /FeatureName:IIS-RequestFiltering /FeatureName:IIS-RequestMonitor /FeatureName:IIS-Security /FeatureName:IIS-ServerSideIncludes /FeatureName:IIS-StaticContent /FeatureName:IIS-URLAuthorization /FeatureName:IIS-WebDAV /FeatureName:IIS-WebServer /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-WebServerRole /FeatureName:IIS-WindowsAuthentication /FeatureName:IIS-WMICompatibility /FeatureName:WAS-ConfigurationAPI /FeatureName:WAS-NetFxEnvironment /FeatureName:WAS-ProcessModel /FeatureName:WAS-WindowsActivationService</args>
          </RunExecutableOn64bitOS>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-iru</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallIISServerRole2008Vista" EstTime="800" TimeOut="1800000" UIName="#ConfigureWindowsIISRole" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalOSType>WindowsServer2008</globalOSType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableOn64bitOS Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>pkgmgr</cmd>
            <args>/iu:MicrosoftWindowsPowerShell;IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI</args>
          </RunExecutableOn64bitOS>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-iru</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallIISServerRole2008Vista" EstTime="800" TimeOut="1800000" UIName="#ConfigureWindowsIISRole" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalOSType>WindowsServer2008</globalOSType>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\pkgmgr.exe</cmd>
            <args>/iu:MicrosoftWindowsPowerShell;IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-iru</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="InstallReportViewer" EstTime="500" TimeOut="600000" UIName="#InstallReportViewer" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>@globalSetupPath/@\SetupSupport\ReportViewer.exe</cmd>
            <args>/q</args>
          </RunExecutable>
          <!-- After upgrading from previous version(s) of the product, the DLL representing version 8 of the Report Viewer control might still exist in the web\bin folder. -->
          <!-- Therefore, if it exists, remove it since we have now upgraded to version 10 and the version 8 DLL causes an error when running Web Reporter. -->
          <!-- Even though this step is only needed for upgrades, it's harmless to run it on a fresh install as well (if the file doesn't exist, nothing will be done). -->
          <DeleteFileIfExists Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <fileName>@globalProgramFileFolder/@\web\bin\Microsoft.ReportViewer.WebForms.dll</fileName>
          </DeleteFileIfExists>
        </Method>
      </Request>
      <Request Name="InstallSQLBackwardCompat" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerBackwardCompat" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SQLServer2005_BC.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSQLBackwardCompatx64" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerBackwardCompat" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SQLServer2005_BC_x64.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSQLNativeClient" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerNativeClient" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\sqlncli.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSQLNativeClientx64" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerNativeClientx6" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\sqlncli_x64.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSQLXMO" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerManagementObje" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SQLServer2005_XMO.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSQLXMOx64" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerManagementObje" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SQLServer2005_XMO_x64.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallOPC" EstTime="500" TimeOut="600000" UIName="#InstallOPCCoreComponents" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <!-- Modified as per change 42744 -->
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary|Client</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/qn /i "@globalSetupPath/@\SetupSupport\OPC\OPC Core Components Redistributable (x86).msi" REBOOT=ReallySuppress</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSQLCLRTypesx64" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerCLRTypesx64" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SQLSysClrTypes_x64.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSQLCLRTypes" EstTime="500" TimeOut="600000" UIName="#InstallSQLServerCLRTypes" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SQLSysClrTypes.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSharedManagementObjectsx64" EstTime="500" TimeOut="600000" UIName="#InstallSharedManagementObjects" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SharedManagementObjects_x64.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="InstallSharedManagementObjects" EstTime="500" TimeOut="600000" UIName="#InstallSharedManagementObjects" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\SharedManagementObjects.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CheckSqlAgentInstalled" EstTime="500" TimeOut="1000000" UIName="#ConfigureSQLAgent" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsSQLExpress>false</globalIsSQLExpress>
        </ConditionTrue>
        <Method>
          <SQLServer_CheckSQLAgent Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#SQLAgentcouldnotbesettostartau">
            <dbName>@globalEEMDbServer</dbName>
            <JobType>SetAutoStart</JobType>
          </SQLServer_CheckSQLAgent>
          <SQLServer_CheckSQLAgent Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#SQLAgentdidnotstart">
            <dbName>@globalEEMDbServer</dbName>
            <JobType>Start</JobType>
          </SQLServer_CheckSQLAgent>
        </Method>
      </Request>
      <!-- BEGIN: Database Deployment Dependencies -->
      <!-- IMPORTANT: This Request depends on SQL CLR Types (SQLSysClrTypes.msi) being installed which is already done earlier in the process. -->
      <Request Name="InstallDatabaseDeploymentDependencies" EstTime="500" TimeOut="120000" UIName="#InstallDatabaseDeploymentDependencies" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\Database\dacframework.msi" /qn</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\Database\sqldom.msi" /qn</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <!-- END: Database Deployment Dependencies -->
      <Request Name="ConfigureASPNET" EstTime="500" TimeOut="1000000" UIName="#ConfigureASPNET" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|ReportServer|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#ASPNETcouldnotbeconfigured">
            <serviceName>aspnet_state</serviceName>
            <startupType>AUTO</startupType>
          </ChangeServiceStartUp>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#ASPNETcouldnotbeconfigured">
            <displayServiceName>aspnet_state</displayServiceName>
            <timeout>30</timeout>
          </StartServiceWithTimeout>
        </Method>
      </Request>
      <Request Name="RegisterAssemblies" EstTime="500" TimeOut="1200000" UIName="#RegisterAssemblies" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary|Client|ReportingClient</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- regasm -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ClrInitializer.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSecurity.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Internationalization.dll" /codebase</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PMLSplashScreen.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Security.UserManager.Data.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NetworkRouterTaskScheduler.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NOMRegistrar.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SystemLog.COM.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONSNG.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\AboutBox.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ModbusExtensions.Dialogue.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.DataSelector.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SqlPackageWrapper.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\CommServer.Licensing.dll"</args>
          </RunExecutable>
          <!-- regtlibv12-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IModbusExtensions.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONDiagnostics.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PMLCommServer.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PMLLogServer.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PMLNOMEntity.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>"@globalProgramFileFolder/@\system\bin\WebReachdatacollector.tlb"</args>
          </RunExecutable>
          <!-- regsvr32 -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLMonikers.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLDiagnostics.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\ProductInfo.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLServiceRegistration.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\IONOptionsManager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\tdbg7.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\pegasysentitymanager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\MSDEUpgrader.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLNOMCfg.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLSProvider.dll"</args>
          </RunExecutable>
          <!-- Added for pegasys ism removal -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLCrypto.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\MDILogic.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\NetmanMessage.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLCallReceiver.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLClientMessenger.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLSecurity.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLTreeScanner.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLTreeTranslator.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\WebReach.LocateSubscriptions.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\pmltimezone.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\viewman.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\viewman_.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\IONDiagnosticsProvider.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\TreemonClient.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSNG.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PortConnectionTask.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Configuration.AutoConfig.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Interop.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.PMLWebReach.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\LAMInterop.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcExport.DA.Server.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcImport.DA.Translator.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\WebReach.ManagedSubscriptionStore.dll"</args>
          </RunExecutable>
          <!-- End - Added for pegasys ism removal -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\VBRuntimeExtended.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RegisterAssemblies" EstTime="500" TimeOut="1200000" UIName="#RegisterAssemblies" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- regasm -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ClrInitializer.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSecurity.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Internationalization.dll" /codebase</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PMLSplashScreen.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Security.UserManager.Data.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NOMRegistrar.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SystemLog.COM.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONSNG.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\AboutBox.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SqlPackageWrapper.dll"</args>
          </RunExecutable>
          <!-- regsvr32 -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLMonikers.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLDiagnostics.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\ProductInfo.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLServiceRegistration.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\IONOptionsManager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\tdbg7.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\pegasysentitymanager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\MSDEUpgrader.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLNOMCfg.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLSProvider.dll"</args>
          </RunExecutable>
          <!-- Added for pegasys ism removal -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLCrypto.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\MDILogic.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\NetmanMessage.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLCallReceiver.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLClientMessenger.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLSecurity.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLTreeScanner.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\PMLTreeTranslator.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\WebReach.LocateSubscriptions.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\pmltimezone.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\viewman.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\viewman_.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s "@globalProgramFileFolder/@\system\bin\IONDiagnosticsProvider.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSNG.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PortConnectionTask.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Configuration.AutoConfig.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Interop.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.PMLWebReach.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\LAMInterop.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcExport.DA.Server.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcImport.DA.Translator.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\WebReach.ManagedSubscriptionStore.dll"</args>
          </RunExecutable>
          <!-- End - Added for pegasys ism removal -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\SetupSupport\VBRuntimeExtended.msi" /qn</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RegisterDatabaseManager" EstTime="500" TimeOut="1200000" UIName="#RegisterDatabaseManager" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- This registration can only be called AFTER PMLServiceRegistration.dll has been registered -->
          <CallComObject Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <sProgId>PMLSERVICEREGISTRATION.ServiceRegistrar.1</sProgId>
            <sMember>RegisterEventLogMessageFile</sMember>
            <sArgs>ION Database Manager</sArgs>
          </CallComObject>
        </Method>
      </Request>
      <Request Name="CreateNetShare" EstTime="500" TimeOut="1200000" UIName="#ConfigureNetworkShare" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>net.exe</cmd>
            <args>SHARE ION-Ent="@globalProgramFileFolder/@" /REMARK:"@globalBrandProductName/@" /Y</args>
          </RunExecutable>
        </Method>
      </Request>
      <!-- BEGIN ORIGINAL CODE:  ION_SystemLog database files were copied to the target machine. -->
      <Request Name="ConfigureSQLDBs" EstTime="500" TimeOut="600000" UIName="#CopyDatabaseFiles" ProgressBar="Animation" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <!--Copy the Databases SSDT files-->
          <!-- On a 7.2 install this folder is read-only for some reason and blocks file copies.  Must remove -R attribute. -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| attrib -R "@globalProgramFileFolder/@\system\etc\Database\*.*" /S /D</args>
          </RunExecutable>
          <CopyFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotbackupconfigfolder">
            <sourceFolder>@globalSRCDIR/@\SetupSupport\Database</sourceFolder>
            <destFolder>@globalProgramFileFolder/@\system\etc\Database</destFolder>
            <appendTimestamp>false</appendTimestamp>
          </CopyFolder>
        </Method>
      </Request>
      <Request Name="ConfigureSQLDBs" EstTime="500" TimeOut="600000" UIName="#AttachSQLServerDatabases" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <!--Need to create this folder so SSDT can deploy the database.-->
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\SystemLog</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\Data</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\Network</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatedatabasebackupfo">
            <destPath>@globalDatabaseFolder/@\Database\ApplicationModules</destPath>
          </CreateFolder>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>18000</timeout>
          </setSQLTimeout>
          <ChangeAuthModeToMixedAndRestart Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <serviceName>@globalSQLServiceName</serviceName>
            <timeout>60</timeout>
          </ChangeAuthModeToMixedAndRestart>
        </Method>
      </Request>
      <!-- BEGIN:  ION database deployment -->

      <Request Name="AttachDatabases" EstTime="500" TimeOut="600000" UIName="#AttachExistingDatabases" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <AttachDatabaseWithName Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <pathToMDF>@globalDatabaseFolder/@\Database\Data\ION_Data.mdf</pathToMDF>
            <pathToLDF>@globalDatabaseFolder/@\Database\Data\ION_Data.ldf</pathToLDF>
            <MDFname>ION_Data.mdf</MDFname>
            <LDFname>ION_Data.ldf</LDFname>
          </AttachDatabaseWithName>
          <AttachDatabaseWithName Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Network</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <pathToMDF>@globalDatabaseFolder/@\Database\Network\ION_Network.mdf</pathToMDF>
            <pathToLDF>@globalDatabaseFolder/@\Database\Network\ION_Network.ldf</pathToLDF>
            <MDFname>ION_Network.mdf</MDFname>
            <LDFname>ION_Network.ldf</LDFname>
          </AttachDatabaseWithName>
          <AttachDatabaseWithName Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_SystemLog</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <pathToMDF>@globalDatabaseFolder/@\Database\SystemLog\ION_SystemLog.mdf</pathToMDF>
            <pathToLDF>@globalDatabaseFolder/@\Database\SystemLog\ION_SystemLog.ldf</pathToLDF>
            <MDFname>ION_SystemLog.mdf</MDFname>
            <LDFname>ION_SystemLog.ldf</LDFname>
          </AttachDatabaseWithName>
          <AttachDatabaseWithName Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ApplicationModules</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <pathToMDF>@globalDatabaseFolder/@\Database\ApplicationModules\ApplicationModules.mdf</pathToMDF>
            <pathToLDF>@globalDatabaseFolder/@\Database\ApplicationModules\ApplicationModules_log.ldf</pathToLDF>
            <MDFname>ApplicationModules.mdf</MDFname>
            <LDFname>ApplicationModules_log.ldf</LDFname>
          </AttachDatabaseWithName>
        </Method>
      </Request>
      
      <Request Name="ScriptIONDatabasesWindowsAuthX64" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ScriptIONDatabasesWindowsAuthX86" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="SetupUserPermissions" EstTime="500" TimeOut="600000" UIName="#ConfigureUserPermissions" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "@globalDatabaseFolder/@" /T /E /C /G "NT AUTHORITY\SYSTEM":F</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CreateIONDatabasesWindowsAuth" EstTime="500" TimeOut="1200000" UIName="#CreateDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <!--ION_Data-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Data</filePath>
            <mdffileName>ION_Data.mdf</mdffileName>
            <ldffileName>ION_Data.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ION_Data" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Data.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_Network-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Network</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Network</filePath>
            <mdffileName>ION_Network.mdf</mdffileName>
            <ldffileName>ION_Network.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ION_Network" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Network.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_SystemLog-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_SystemLog</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\SystemLog</filePath>
            <mdffileName>ION_SystemLog.mdf</mdffileName>
            <ldffileName>ION_SystemLog.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ION_SystemLog" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
        </Method>
      </Request>
      <!--SQL Server Auth-->
      <Request Name="ScriptIONDatabasesSqlAuthX64" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ScriptIONDatabasesSqlAuthX86" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <!--ION_Data-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Data\ION_Data.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Data" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Data\ReferenceData"</args>
          </RunExecutable>
          <!--ION_Network-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\Network\ION_Network.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\Network" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\Network\ReferenceData"</args>
          </RunExecutable>
          <!--ION_SystemLog-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\SystemLog\ION_SystemLog.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\SystemLog" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\SystemLog"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CreateDatabaseSqlAuth" EstTime="600" TimeOut="1200000" UIName="#CreateDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <!--ION_Data-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Data</filePath>
            <mdffileName>ION_Data.mdf</mdffileName>
            <ldffileName>ION_Data.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ION_Data" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Data.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Data.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_Network-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Network</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\Network</filePath>
            <mdffileName>ION_Network.mdf</mdffileName>
            <ldffileName>ION_Network.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ION_Network" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_Network.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_Network.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
          <!--ION_SystemLog-->
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_SystemLog</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\SystemLog</filePath>
            <mdffileName>ION_SystemLog.mdf</mdffileName>
            <ldffileName>ION_SystemLog.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ION_SystemLog" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.sql" -o "@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
        </Method>
      </Request>
      <Request Name="VerifyDatabases" EstTime="1000" TimeOut="0" UIName="#VerifyDatabases" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <!--Now check the log files for errors-->
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONDataLogError">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ION_Data.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONNetworkLogError">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ION_Network.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONSystemLogError">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ION_SystemLog.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
        </Method>
      </Request>
      <!-- END: ION database deployment -->
      <!-- The step below has to do with RepGen configuration. -->
      <Request Name="RemoveReportUserForUpgrades" EstTime="500" TimeOut="600000" UIName="#ConfigureSQLServer" ProgressBar="Animation" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <!--Remove the Report user first to fix upgrade scenarios-->
          <RemoveLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>Report</userName>
          </RemoveLogin>
        </Method>
      </Request>
      <Request Name="ConfigureSQL" EstTime="500" TimeOut="600000" UIName="#ConfigureSQLServer" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <CreateProductLoginWithServerRoles Library="Security.Configuration" Class="Security.Configuration.ProductLoginHelper" UIMessageOnFail="#CreateIonProductLoginFailed">
            <connectionString>@globalConnectionString</connectionString>
            <name>@globalBrandSQLUser</name>
            <phrase>@globalBrandIONSQLPwd</phrase>
            <databaseAuthenticationType>Sql</databaseAuthenticationType>
            <databases>msdb</databases>
            <roles>SQLAgentOperatorRole,SQLAgentReaderRole,SQLAgentUserRole</roles>
            <serverRoles>sysadmin</serverRoles>
          </CreateProductLoginWithServerRoles>
          <!-- The step below has to do with RepGen configuration. -->
          <CreateProductLogin Library="Security.Configuration" Class="Security.Configuration.ProductLoginHelper" UIMessageOnFail="#CreateReportProductLoginFailed">
            <connectionString>@globalConnectionString</connectionString>
            <name>Report</name>
            <phrase>rep0rter!</phrase>
            <databaseAuthenticationType>Sql</databaseAuthenticationType>
            <databases>ION_Data</databases>
            <roles>ION_Reader,db_datareader</roles>
          </CreateProductLogin>
          <CreateProductLogin Library="Security.Configuration" Class="Security.Configuration.ProductLoginHelper" UIMessageOnFail="#CreateDsdProductLoginFailed">
            <connectionString>@globalConnectionString</connectionString>
            <name>ionedsd</name>
            <phrase>exw1BStLAmzokMLd4uiXLouELuCl037YUD</phrase>
            <databaseAuthenticationType>Sql</databaseAuthenticationType>
            <databases>ION_Data</databases>
            <roles>ION_DSD_Reader</roles>
          </CreateProductLogin>
          <CreateProductLogin Library="Security.Configuration" Class="Security.Configuration.ProductLoginHelper" UIMessageOnFail="#CreateDsdProductLoginFailed">
            <connectionString>@globalConnectionString</connectionString>
            <name>ionedsd</name>
            <phrase>exw1BStLAmzokMLd4uiXLouELuCl037YUD</phrase>
            <databaseAuthenticationType>Sql</databaseAuthenticationType>
            <databases>ION_Network</databases>
            <roles>NOM_DSD_Reader</roles>
          </CreateProductLogin>
          <ConfigureSAC Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL"></ConfigureSAC>
          <EnableCLR Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL"></EnableCLR>
          <ChangeOwnerRole Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <userName>ION</userName>
            <dbName>ION_Data</dbName>
          </ChangeOwnerRole>
          <ChangeOwnerRole Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <userName>ION</userName>
            <dbName>ION_SystemLog</dbName>
          </ChangeOwnerRole>
          <ChangeOwnerRole Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <userName>ION</userName>
            <dbName>ION_Network</dbName>
          </ChangeOwnerRole>
          <CreateEventSource Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <sourceName>ION Database Manager</sourceName>
          </CreateEventSource>
        </Method>
      </Request>
      <Request Name="MSDEUpgradesx64" EstTime="500" TimeOut="600000" UIName="#ConfigureSQLServer" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\syswow64\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\Database\UpgradeSYSLOGDatabase.vbs"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\syswow64\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\Database\UpgradeNOMDatabase.vbs"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\syswow64\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\Database\UpgradeIONDatabase.vbs"</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="MSDEUpgradesx32" EstTime="500" TimeOut="600000" UIName="#ConfigureSQLServer" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\Database\UpgradeSYSLOGDatabase.vbs"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\Database\UpgradeNOMDatabase.vbs"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\Database\UpgradeIONDatabase.vbs"</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
<!--
      <Request Name="CreateMaintenanceUser" EstTime="500" TimeOut="800000" UIName="#CreateMaintainenceProductLogin" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <CreateProductLogin Library="Security.Configuration" Class="Security.Configuration.ProductLoginHelper" UIMessageOnFail="#CreateMaintenanceProductLoginFailed">
            <connectionString>@globalConnectionString</connectionString>
            <name>@Custom_DBMaintenanceUsername</name>
            <phrase>@globalBrandSQLPwd</phrase>
            <databaseAuthenticationType>Windows</databaseAuthenticationType>
            <databases>@globalIONDBName/@,ION_Network,ION_SystemLog</databases>
            <roles>Maintenance,db_backupoperator,db_ddladmin</roles>
          </CreateProductLogin>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "@globalDatabaseFolder/@" /T /E /C /G "@Custom_DBMaintenanceUsername/@":W</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "@globalDatabaseFolder/@" /T /E /C /G "@Custom_DBMaintenanceUsername/@":R</args>
          </RunExecutable>
          <AddLSAPrivileges Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotsetbatchrights">
            <userName>@Custom_DBMaintenanceUsername</userName>
            <privilege>SeBatchLogonRight</privilege>
          </AddLSAPrivileges>
          <AddLSAPrivileges Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotsetbatchrights">
            <userName>@Custom_DBMaintenanceUsername</userName>
            <privilege>SeDenyInteractiveLogonRight</privilege>
          </AddLSAPrivileges>
        </Method>
      </Request>
-->
      <Request Name="ConfigureSupervisorAccount" EstTime="500" TimeOut="600000" UIName="#Configuresupervisoraccount" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|PrimaryOnly</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalAction>Upgrade</globalAction>
        </ConditionFalse>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString/@</connectionString>
          </SetConnectionString>
          <UpdateUserAccountPassword Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Couldnotconfiguresupervisoraccount">
            <userName>@globalSupervisorName/@</userName>
            <unencryptedPassword>@globalSupervisorPassword/@</unencryptedPassword>
          </UpdateUserAccountPassword>
        </Method>
      </Request>
      <Request Name="ConfigureNOM" EstTime="500" TimeOut="600000" UIName="#ConfigureNetworkSettings" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <!--Assuming all paths will need new product key to 7.2-->
        <!--<ConditionFalse>
          <globalPreviousVersion>7.0</globalPreviousVersion>
        </ConditionFalse>-->
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>45</timeout>
          </setSQLTimeout>
          <InstallComputer Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <setupType>Primary</setupType>
          </InstallComputer>
          <UpdateScheduler Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <setupType>Primary</setupType>
          </UpdateScheduler>
        </Method>
      </Request>
      <Request Name="ConfigureNOM" EstTime="500" TimeOut="600000" UIName="#ConfigureNetworkSettings" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Secondary</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <setSQLTimeout Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <timeout>45</timeout>
          </setSQLTimeout>
          <VerifyProductInfoConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#CouldNotAccessDatabase"></VerifyProductInfoConnectionString>
          <InstallComputer Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#CouldNotInstallComputerSec">
            <setupType>Secondary</setupType>
          </InstallComputer>
        </Method>
      </Request>
      <Request Name="CreateUsers" EstTime="500" TimeOut="800000" UIName="#CreateWindowsUsers" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <!-- IONUser account -->
        <Method>
          <CreateWindowsUser Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <userName>@globalBrandEEMUser</userName>
            <userPassword>@globalBrandSQLPwd</userPassword>
            <adminprivs>false</adminprivs>
          </CreateWindowsUser>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "@globalDatabaseFolder/@" /T /E /C /G "@globalBrandEEMUser/@":W</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "@globalDatabaseFolder/@" /T /E /C /G "@globalBrandEEMUser/@":R</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "%windir%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files" /E /C /G "@globalBrandEEMUser/@":F</args>
          </RunExecutable>
          <!-- for 64 only -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotgrantPermissionstotepo">
            <cmd>cmd.exe</cmd>
            <args>/c echo y| CACLS.exe "%windir%\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files" /E /C /G "@globalBrandEEMUser/@":F</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="SetExecutionPolicy64bit" EstTime="300000" TimeOut="800000" UIName="#SetPowerShellExecutionPolicy" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalIsx64>true</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#SetPowershellExecutionPolicyFailure">
            <cmd>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe</cmd>
            <args>-noninteractive -nologo -command "&amp; { Set-ExecutionPolicy Undefined -Scope CurrentUser -Force }"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#SetPowershellExecutionPolicyFailure">
            <cmd>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe</cmd>
            <args>-noninteractive -nologo -command "&amp; { Set-ExecutionPolicy RemoteSigned -Scope LocalMachine -Force }"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ConfigurePowershell64bit" EstTime="300000" TimeOut="800000" UIName="#ConfigurePowershell" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalIsx64>true</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#InstallPowershellSqlProviderFailure">
            <cmd>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe</cmd>
            <args>-noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Support\InstallPowershellSqlProvider.ps1"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="SetExecutionPolicy32bit" EstTime="300000" TimeOut="800000" UIName="#SetPowerShellExecutionPolicy" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalIsx64>false</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#SetPowershellExecutionPolicyFailure">
            <cmd>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe</cmd>
            <args>-noninteractive -nologo -command "&amp; { Set-ExecutionPolicy Undefined -Scope CurrentUser -Force }"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#SetPowershellExecutionPolicyFailure">
            <cmd>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe</cmd>
            <args>-noninteractive -nologo -command "&amp; { Set-ExecutionPolicy RemoteSigned -Scope LocalMachine -Force }"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ConfigurePowershell32bit" EstTime="300000" TimeOut="800000" UIName="#ConfigurePowershell" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalIsx64>false</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#InstallPowershellSqlProviderFailure">
            <cmd>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe</cmd>
            <args>-noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Support\InstallPowershellSqlProvider.ps1"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ConfigureVirtualDirectory" EstTime="500" TimeOut="100000" UIName="#CreateVirtualDirectories" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CreateAppPool Library="IISManager" Class="Installer.InstallTools.IISManager">
            <metabasePath>IIS://@globalMachineName/@/W3SVC/AppPools</metabasePath>
            <appPoolName>ION AppPool</appPoolName>
          </CreateAppPool>
          <!--Set it to start immediately-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "ION AppPool" /autoStart:True </args>
          </RunExecutable>
          <!--Set it to use .NET Framework 4.0-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "ION AppPool" /managedRuntimeVersion:v4.0 </args>
          </RunExecutable>
          <!--Set ManagedPipelineMode to 'Classic'-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "ION AppPool" /ManagedPipeLineMode:Classic</args>
          </RunExecutable>
          <!--Set the identity to LocalSystem-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set AppPool "ION AppPool" -processModel.identityType:LocalSystem</args>
          </RunExecutable>
          <!--Configures application pool recycling-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>recycle apppool "ION AppPool"</args>
          </RunExecutable>
          <CreateVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>@globalSecondaryVirtualRoot</nameDirectory>
            <realPath>@globalProgramFileFolder/@\Web</realPath>
            <defaultDoc>Login.aspx</defaultDoc>
          </CreateVirtualDirectory>
          <CreateVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>IONReportDataService</nameDirectory>
            <realPath>@globalProgramFileFolder/@\system\ReportDataService</realPath>
            <defaultDoc>ReportDataService.asmx</defaultDoc>
          </CreateVirtualDirectory>
          <CreateVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>WebServices</nameDirectory>
            <realPath>@globalProgramFileFolder/@\system\WebServices</realPath>
            <defaultDoc>WebRealTime.svc</defaultDoc>
          </CreateVirtualDirectory>
          <AddSitesToSecurityConfigZone Library="IISManager" Class="Installer.InstallTools.IISManager">
            <websiteUrl>@globalMachineName</websiteUrl>
          </AddSitesToSecurityConfigZone>
          <AddSitesToSecurityConfigZone Library="IISManager" Class="Installer.InstallTools.IISManager">
            <websiteUrl>@globalMachineName/@/@globalSecondaryVirtualRoot/@</websiteUrl>
          </AddSitesToSecurityConfigZone>
          <!-- Unlock the web.config ipsecurity section for all sites so we can restrict access to the WebServices virtual directory -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>unlock config -section:system.webServer/security/ipSecurity</args>
          </RunExecutable>
        </Method>
      </Request>
      <!--Adding a new Application Pool only for the WebReporter so in cases of crashes it doesn't bring everything else down.-->
      <Request Name="ConfigureCreateWebReporterAppPool" EstTime="500" TimeOut="100000" UIName="#CreateWebReporterAppPool" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CreateAppPool Library="IISManager" Class="Installer.InstallTools.IISManager">
            <metabasePath>IIS://@globalMachineName/@/W3SVC/AppPools</metabasePath>
            <appPoolName>WebReporterAppPool</appPoolName>
          </CreateAppPool>
          <!--Set it to start immediately-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "WebReporterAppPool" /autoStart:True </args>
          </RunExecutable>
          <!--Set it to use .NET Framework 4.0-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "WebReporterAppPool" /managedRuntimeVersion:v4.0 </args>
          </RunExecutable>
          <!--Set ManagedPipelineMode to 'Classic'-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "WebReporterAppPool" /ManagedPipeLineMode:Classic</args>
          </RunExecutable>
          <!--Set the identity to LocalSystem-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set AppPool "WebReporterAppPool" -processModel.identityType:LocalSystem</args>
          </RunExecutable>
          <!--Configures application pool recycling-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>recycle apppool "WebReporterAppPool"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="AddSites" EstTime="500" TimeOut="100000" UIName="#ConfigureSecureSites" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <AddSitesToSecurityConfigZone Library="IISManager" Class="Installer.InstallTools.IISManager">
            <websiteUrl>@globalRemoteServer</websiteUrl>
          </AddSitesToSecurityConfigZone>
          <AddSitesToSecurityConfigZone Library="IISManager" Class="Installer.InstallTools.IISManager">
            <websiteUrl>@globalRemoteServer/@/@globalSecondaryVirtualRoot/@</websiteUrl>
          </AddSitesToSecurityConfigZone>
        </Method>
      </Request>
      <Request Name="VirtualVersion" EstTime="500" TimeOut="100000" UIName="#ConfigureVirtualDirectoryVersi" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetVirtualRootToVersion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <rootName>@globalSecondaryVirtualRoot</rootName>
            <version>4</version>
          </SetVirtualRootToVersion>
          <SetVirtualRootToVersion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <rootName>IONReportDataService</rootName>
            <version>4</version>
          </SetVirtualRootToVersion>
          <SetVirtualRootToVersion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <rootName>WebServices</rootName>
            <version>4</version>
          </SetVirtualRootToVersion>
        </Method>
      </Request>
      <Request Name="SetDefaultAppPoolto32" EstTime="500" TimeOut="100000" UIName="#Configure32bitApplicationPool" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>set apppool /apppool.name:"ION AppPool" /enable32BitAppOnWin64:true</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>set apppool /apppool.name:"ASP.NET v4.0 DefaultAppPool" /enable32BitAppOnWin64:true</args>
          </RunExecutable>
          <!-- Also need to set the Default App pool to x86 for Dashboards. Remove this if Dash use a seperate app pool or x64 is desired-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>set apppool /apppool.name:"DefaultAppPool" /enable32BitAppOnWin64:true</args>
          </RunExecutable>
          <!--Set the WebReporterAppPool too-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>set apppool /apppool.name:"WebReporterAppPool" /enable32BitAppOnWin64:true</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="AllowISAPICGI" EstTime="500" TimeOut="100000" UIName="#ConfigureISAPIandCGIrestrictio" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalOSType>WindowsServer2008|Windows7|WindowsServer2008R2</globalOSType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotconfigureISAPICGIPermi">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll'].allowed:True</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotconfigureISAPICGIPermi">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll'].allowed:True</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ConfigureWebreach" EstTime="500" TimeOut="500000" UIName="#ConfigureWebReach" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CreateVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>ION</nameDirectory>
            <realPath>@globalProgramFileFolder/@\system\WebReach</realPath>
            <defaultDoc>Default.aspx</defaultDoc>
          </CreateVirtualDirectory>
          <CreateVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>ION/diagrams</nameDirectory>
            <realPath>@globalProgramFileFolder/@\config\diagrams</realPath>
            <defaultDoc></defaultDoc>
          </CreateVirtualDirectory>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>IISConfig</name>
            <value>OK</value>
          </AddStringToRegistry>
          <SetVirtualRootToVersion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <rootName>ION</rootName>
            <version>4</version>
          </SetVirtualRootToVersion>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\WebReach</key>
            <name>ExpireTimeLimit</name>
            <value>600</value>
          </AddDWORDToRegistry>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-s W3SVC/1/ROOT/ION</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-ga "NT AUTHORITY\NETWORK SERVICE"</args>
          </RunExecutable>
          <!-- on 64 bit systems
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-s W3SVC/1/ROOT/ION</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-ga "NT AUTHORITY\NETWORK SERVICE"</args>
          </RunExecutable>
          -->
        </Method>
      </Request>
      <Request Name="AppPoolVersion" EstTime="500" TimeOut="100000" UIName="#ConfigureApplicationPools" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <globalOSType>WindowsServer2008|Windows7|WindowsServer2008R2</globalOSType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set app "Default Web Site"/@globalSecondaryVirtualRoot/@ /applicationPool:"WebReporterAppPool"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set app "Default Web Site"/IONReportDataService /applicationPool:"ION AppPool"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set app "Default Web Site"/WebServices /applicationPool:"ION AppPool"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set app "Default Web Site"/ION /applicationPool:"ION AppPool"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set app "Default Web Site"/ION/diagrams /applicationPool:"ION AppPool"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="UpdateMeterRegistry" EstTime="500" TimeOut="100000" UIName="#ConfigureMeterRegistry" ProgressBar="Animation" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotrunmeterregistryforMet">
            <cmd>"@globalProgramFileFolder/@\system\bin\meterregistry.exe"</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Meter.xml"</args>
            <retCode>0</retCode>
          </RunExecutable>       
        </Method>
      </Request>
      <!-- User Story #7430: Setting the IONReportDataService URL.  Does the "#UpdateReportingDatabase" string still make sense to describe what's going on here? -->
      <!-- *** TO DO - NOT in Upgrades ***-->
      <Request Name="UpdateRSSettings" EstTime="500" TimeOut="120000" UIName="#UpdateReportingDatabase" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <!--User Story #9555:  Install Web Reporter on SQL Express. -->
          <!--<globalIsSQLExpress>false</globalIsSQLExpress>-->
        </ConditionTrue>
        <Method>
          <UpdateDBSettings Library="RSConfiguration" Class="Installer.InstallTools.ReportingServConfig">
            <serverName>@globalMachineName</serverName>
            <!--Machine where application server resides-->
            <sConnectionString>@globalConnectionString</sConnectionString>
          </UpdateDBSettings>
        </Method>
      </Request>
      <Request Name="PreparePrimary" EstTime="500" TimeOut="600000" UIName="#PreparePrimary" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <AddDWORDToRegistryIfNotExist Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>ConnectedThreadPoolSize</name>
            <value>200</value>
          </AddDWORDToRegistryIfNotExist>
          <AddDWORDToRegistryIfNotExist Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>LI_PollingPeriod_s</name>
            <value>30</value>
          </AddDWORDToRegistryIfNotExist>
          <AddDWORDToRegistryIfNotExist Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>LI_MaxPollingPeriod_s</name>
            <value>60</value>
          </AddDWORDToRegistryIfNotExist>
          <AddDWORDToRegistryIfNotExist Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</key>
            <name>IONServicesCachePollingRate</name>
            <value>10</value>
          </AddDWORDToRegistryIfNotExist>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotexportDatabaseregistry">
            <cmd>regedit.exe</cmd>
            <args>/e "@globalProgramFileFolder/@\config\DatabaseRegistry.reg" "HKEY_LOCAL_MACHINE\@globalBrandRegistryRoot/@\@globalDisplayVersion/@\Databases"</args>
          </RunExecutable>
          <AppendtoFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotappendtoDatabaseRegist">
            <filePath>@globalProgramFileFolder</filePath>
            <fileName>config\DatabaseRegistry.reg</fileName>
            <newString>[HKEY_LOCAL_MACHINE\@globalBrandRegistryRoot/@\@globalDisplayVersion/@]&#xD;&#xA;</newString>
          </AppendtoFile>
          <AppendtoFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotappendtoDatabaseRegist">
            <filePath>@globalProgramFileFolder</filePath>
            <fileName>config\DatabaseRegistry.reg</fileName>
            <newString>"VirtualDirectory"="@globalVirtualRoot/@"&#xD;&#xA;</newString>
          </AppendtoFile>
          <AppendtoFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotappendtoDatabaseRegist">
            <filePath>@globalProgramFileFolder</filePath>
            <fileName>config\DatabaseRegistry.reg</fileName>
            <newString>"IISConfig"="OK"&#xD;&#xA;</newString>
          </AppendtoFile>
          <CopyFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcopyinternattxttoconfi">
            <sourcePath>@globalProgramFileFolder/@\system\etc</sourcePath>
            <sourceFile>internat.txt</sourceFile>
            <destPath>@globalProgramFileFolder/@\config\internat</destPath>
            <destFile>internat.txt</destFile>
          </CopyFile>
        </Method>
      </Request>
      <Request Name="ConfigureRSLocalization" EstTime="500" TimeOut="600000" UIName="#Configuringlocalizedfiles" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalRSSelected>true</globalRSSelected>
          <!-- User Story #9555:  Install Web Reporter on SQL Express.  NOTE:  Not sure if this step executes correctly on SQL Express. -->
          <!--<globalIsSQLExpress>false</globalIsSQLExpress>-->
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>ReportServer</globalSetupType>
        </ConditionFalse>
        <Method>
          <SetInstance Library="RSConfiguration" Class="Installer.InstallTools.ReportingServConfig">
            <instance>@globalRSInstanceName/@</instance>
          </SetInstance>
          <CopyRSLanguageFolder Library="RSConfiguration" Class="Installer.InstallTools.ReportingServConfig">
            <sourceFolder>@globalSRCDIR/@\SetupSupport\ReportingServices\bin\@globalApplicationLanguage/@</sourceFolder>
            <locale>@globalApplicationLanguage/@</locale>
            <overwrite>false</overwrite>
          </CopyRSLanguageFolder>
        </Method>
      </Request>
      <Request Name="SetupPermissions" EstTime="500" TimeOut="600000" UIName="#ConfigurePermissions" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
            <folderName>@globalProgramFileFolder/@\config</folderName>
          </GiveUsersReadWrite>
        </Method>
      </Request>
      <Request Name="SetupUserPermissions" EstTime="500" TimeOut="600000" UIName="#ConfigureUserPermissions" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <!-- Modified as per change 42744 -->
          <globalSetupType>Primary|PrimaryOnly|WebApp|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetAdminOnly Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonUs">
            <name>@globalProgramFileFolder/@\system\bin\UsersMigration.exe</name>
          </SetAdminOnly>
        </Method>
      </Request>
      <Request Name="SetupDiagPermissions" EstTime="500" TimeOut="600000" UIName="#ConfigureDiagnosticPermissions" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <globalOSType>WindowsVista|WindowsServer2008|Windows7|WindowsServer2008R2</globalOSType>
        </ConditionTrue>
        <Method>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatediagnosticsfolde">
            <destPath>@globalProgramFileFolder/@\config\upgrade</destPath>
          </CreateFolder>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatediagnosticsfolde">
            <destPath>@globalProgramFileFolder/@\Diagnostic</destPath>
          </CreateFolder>
          <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
            <folderName>@globalProgramFileFolder/@\Diagnostic</folderName>
          </GiveUsersReadWrite>
        </Method>
      </Request>
      <Request Name="RegisterServices" EstTime="500" TimeOut="1000000" UIName="#RegisterServices" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Client</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLCM</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLConnectionManager.exe</serviceExe>
            <serviceArgs>-RegServer</serviceArgs>
            <checkExists>false</checkExists>
          </SelfRegisterService>
        </Method>
      </Request>
      <Request Name="RegisterServices" EstTime="500" TimeOut="1000000" UIName="#RegisterServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly</globalSetupType>
          <globalAction>Install</globalAction>
          <!-- Standalone Primary -->
        </ConditionTrue>
        <Method>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatediagnosticsfolde">
            <destPath>@globalProgramFileFolder/@\config\cfg\logsrv</destPath>
          </CreateFolder>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLNetman</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLNetman.exe</serviceExe>
            <serviceArgs>-Service[@globalSQLServiceName/@]</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLCM</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLConnectionManager.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONEW</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONEventWatcherService.exe</serviceExe>
            <serviceArgs>-Service[@globalSQLServiceName/@]</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONPQA</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONPowerQualityAggregator.exe</serviceExe>
            <serviceArgs>-Service[@globalSQLServiceName/@]</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLMK</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLExeMonikers.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLQueryServer</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\QueryServer.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLSS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\siteserv.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLXMLSubscriptionStore</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\SubscriptionStore.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLXMLSubscriptions</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\WebReach.XMLSubscriptionService.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLLogServer</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\logsrv.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLVIP</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\vip.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLOPC</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\ION.OpcDaServer.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PQDIFExporter</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PQDIFExporter.exe</serviceExe>
            <serviceArgs>-Service[@globalSQLServiceName/@]</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLION</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONServices.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLAlertMonitor</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\AlertMonitor.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
        </Method>
      </Request>
      <!-- User Story #9555:  We need a separate step to register reporting-related services for SQL Standard because they have a dependency on SQL Agent. -->
      <Request Name="RegisterReportServices" EstTime="500" TimeOut="1000000" UIName="#RegisterServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly</globalSetupType>
          <globalIsSQLExpress>false</globalIsSQLExpress>
          <!-- Standalone Primary -->
        </ConditionTrue>
        <Method>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONRS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONReportSubscriptionService.exe</serviceExe>
            <serviceArgs>-Service[@globalEEMAgent/@]</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config IONRS start= delayed-auto</args>
          </RunExecutable>
        </Method>
      </Request>
      <!-- User Story #9555:  We need a separate step to register reporting-related services for SQL Express because SQL Agent isn't available on SQL Express. -->
      <Request Name="RegisterReportServicesSqlExpress" EstTime="500" TimeOut="1000000" UIName="#RegisterServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly</globalSetupType>
          <globalIsSQLExpress>true</globalIsSQLExpress>
          <!-- Standalone Primary -->
        </ConditionTrue>
        <Method>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONRS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONReportSubscriptionService.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config IONRS start= delayed-auto</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RegisterServices" EstTime="500" TimeOut="1000000" UIName="#RegisterServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
          <globalAction>Install</globalAction>
          <!-- Distributed Primary - SQL Service cannot be a dependency -->
        </ConditionTrue>
        <Method>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatediagnosticsfolde">
            <destPath>@globalProgramFileFolder/@\config\cfg\logsrv</destPath>
          </CreateFolder>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLNetman</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLNetman.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLCM</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLConnectionManager.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONEW</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONEventWatcherService.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONPQA</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONPowerQualityAggregator.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLMK</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLExeMonikers.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLQueryServer</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\QueryServer.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLSS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\siteserv.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLXMLSubscriptionStore</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\SubscriptionStore.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLXMLSubscriptions</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\WebReach.XMLSubscriptionService.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLLogServer</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\logsrv.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLVIP</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\vip.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLOPC</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\ION.OpcDaServer.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PQDIFExporter</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PQDIFExporter.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLION</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONServices.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLAlertMonitor</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\AlertMonitor.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONRS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONReportSubscriptionService.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config IONRS start= delayed-auto</args>
          </RunExecutable>
        </Method>
      </Request>
      <!-- User Story #9555:  We need a separate step to register reporting-related services for SQL Standard because they have a dependency on SQL Agent. -->
      <Request Name="RegisterReportServices" EstTime="500" TimeOut="1000000" UIName="#RegisterReportingServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
          <globalAction>Install</globalAction>
          <globalIsSQLExpress>false</globalIsSQLExpress>
        </ConditionTrue>
        <Method>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONRS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONReportSubscriptionService.exe</serviceExe>
            <serviceArgs>-Service[@globalEEMAgent/@]</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config IONRS start= delayed-auto</args>
          </RunExecutable>
        </Method>
      </Request>
      <!-- User Story #9555:  We need a separate step to register reporting-related services for SQL Express because SQL Agent isn't available on SQL Express. -->
      <Request Name="RegisterReportServicesSqlExpress" EstTime="500" TimeOut="1000000" UIName="#RegisterReportingServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>WebApp</globalSetupType>
          <globalAction>Install</globalAction>
          <globalIsSQLExpress>true</globalIsSQLExpress>
        </ConditionTrue>
        <Method>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>IONRS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\IONReportSubscriptionService.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config IONRS start= delayed-auto</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RegisterServices" EstTime="500" TimeOut="1000000" UIName="#RegisterServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Secondary</globalSetupType>
          <globalAction>Install</globalAction>
          <!-- Secondary - SQL Service cannot be a dependency -->
        </ConditionTrue>
        <Method>
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatediagnosticsfolde">
            <destPath>@globalProgramFileFolder/@\config\cfg\logsrv</destPath>
          </CreateFolder>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLCM</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLConnectionManager.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLNetman</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLNetman.exe</serviceExe>
            <serviceArgs>-Service -Secondary</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLNetman</serviceName>
            <startupType>DISABLE</startupType>
          </ChangeServiceStartUp>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLMK</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\PMLExeMonikers.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLMK</serviceName>
            <startupType>DISABLE</startupType>
          </ChangeServiceStartUp>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLSS</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\siteserv.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLSS</serviceName>
            <startupType>DISABLE</startupType>
          </ChangeServiceStartUp>
          <SelfRegisterService Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLVIP</serviceName>
            <serviceExe>@globalProgramFileFolder/@\system\bin\vip.exe</serviceExe>
            <serviceArgs>-Service</serviceArgs>
            <checkExists>true</checkExists>
          </SelfRegisterService>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLVIP</serviceName>
            <startupType>DISABLE</startupType>
          </ChangeServiceStartUp>
        </Method>
      </Request>
      <Request Name="SetupServices" EstTime="500" TimeOut="1000000" UIName="#ConfigureServices" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>PMLCM</serviceName>
            <startupType>MANUAL</startupType>
          </ChangeServiceStartUp>
        </Method>
      </Request>
      <Request Name="VerifyRegisterServices" EstTime="500" TimeOut="1000000" UIName="#VerifyRegisteredServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLNetman</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLION</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLCM</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>IONEW</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>IONPQA</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLMK</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLQueryServer</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLSS</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLXMLSubscriptionStore</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLXMLSubscriptions</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLLogServer</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLVIP</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PQDIFExporter</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLOPC</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>PMLAlertMonitor</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
        </Method>
      </Request>
      <Request Name="VerifyRegisterReportServices" EstTime="500" TimeOut="1000000" UIName="#VerifyRSRegisteredServices" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <!-- User Story #9555:  Check that reporting-related services are installed on both SQL Express and SQL Standard. -->
          <!--<globalIsSQLExpress>false</globalIsSQLExpress>-->
        </ConditionTrue>
        <Method>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>IONRS</serviceName>
            <machineName>localhost</machineName>
          </CheckWindowServiceExisting>
        </Method>
      </Request>
      <Request Name="StartServices" EstTime="500" TimeOut="1200000" UIName="#StartServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLNetman</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLION</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>IONEW</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>IONPQA</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLMK</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLQueryServer</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLSS</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLXMLSubscriptionStore</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLXMLSubscriptions</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLLogServer</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>PMLVIP</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONNetworkRouterServicedidnots">
            <serviceName>PMLNetman</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONRealTimeDataServicedidnotst">
            <serviceName>PMLION</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONEventWatcherServicedidnotst">
            <serviceName>IONEW</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONPowerQualityAggregationServ">
            <serviceName>IONPQA</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#PMLMKdidnotstart">
            <serviceName>PMLMK</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONQueryServicedidnotstart">
            <serviceName>PMLQueryServer</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONSiteServicedidnotstart">
            <serviceName>PMLSS</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONXMLSubscriptionStoreService">
            <serviceName>PMLXMLSubscriptionStore</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONXMLSubscriptionServicedidno">
            <serviceName>PMLXMLSubscriptions</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONLogInserterServicedidnotsta">
            <serviceName>PMLLogServer</serviceName>
          </IsServiceRunning>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONVirtualProcessorServicedidn">
            <serviceName>PMLVIP</serviceName>
          </IsServiceRunning>
        </Method>
      </Request>
      <Request Name="StartRSServices" EstTime="500" TimeOut="1200000" UIName="#StartReportServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <!-- User Story #9555:  Start reporting related-services on both SQL Express and SQL Standard. -->
          <!--<globalIsSQLExpress>false</globalIsSQLExpress>-->
        </ConditionTrue>
        <Method>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>IONRS</displayServiceName>
            <timeout>45</timeout>
          </StartServiceWithTimeout>
          <IsServiceRunning Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#IONReportSubscriptionServicedi">
            <serviceName>IONRS</serviceName>
          </IsServiceRunning>
        </Method>
      </Request>
      <!-- This request will go through the ION Enterprise Service metadata and start any custom services -->
      <Request Name="StartCustomServices" EstTime="1000" TimeOut="1000000" UIName="#StartCustomServices" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary</globalSetupType>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <Method>
          <StartEnterpriseServices Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig" UIMessageOnFail="#CouldnotstartoneormoreIONEnter">
            <timeout>45</timeout>
            <regPath>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\ServiceMetadata</regPath>
          </StartEnterpriseServices>
        </Method>
      </Request>
      <Request Name="RestartWindowsServices" EstTime="500" TimeOut="1000000" UIName="#ConfigureWindowsServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
          <globalOSType>WindowsVista|WindowsServer2008|Windows7|WindowsServer2008R2</globalOSType>
        </ConditionTrue>
        <Method>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>WAS</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>WAS</displayServiceName>
            <timeout>30</timeout>
          </StartServiceWithTimeout>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>W3SVC</displayServiceName>
            <timeout>30</timeout>
          </StartServiceWithTimeout>
        </Method>
      </Request>
      <!-- ****************************************************************************************************-->
      <!-- Inclusion of Dashboards Configuration  *************************************************************-->
      <!-- ****************************************************************************************************-->
      <Request Name="UpdateRegistry" EstTime="500" TimeOut="100000" UIName="#UpdateRegistry" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|DbServer|AMSingleServer|AMDatabase|AMWebApp|AMDSD</globalSetupType>
        </ConditionTrue>
        <Method>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\@globalBrandCompanyName/@\PowerStruXure Reporting</key>
            <name>InstallDir</name>
            <value>@globalProgramFileFolder/@\Applications</value>
          </AddStringToRegistry>
          <SetProductVersionReg Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <regKey>SOFTWARE\@globalBrandCompanyName/@\PowerStruXure Reporting</regKey>
            <regName>Build</regName>
            <filePath>@globalProgramFileFolder/@\Applications\bin\</filePath>
            <fileName>Framework.Common.dll</fileName>
            <defaultText>0</defaultText>
          </SetProductVersionReg>
          <!--*** Temporary until we figure out how we will do this for release ***-->
          <CreateFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreatediagnosticsfolde">
            <destPath>@globalProgramFileFolder/@\Applications\Diagnostic</destPath>
          </CreateFolder>
        </Method>
      </Request>
      <Request Name="UpdateRegistry" EstTime="500" TimeOut="100000" UIName="#UpdateRegistryRoot" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <AddStringToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\@globalBrandCompanyName/@\PowerStruXure Reporting</key>
            <name>VirtualDir</name>
            <value>@globalVirtualRoot</value>
          </AddStringToRegistry>
        </Method>
      </Request>
      <Request Name="ConfigureCertificates" EstTime="0" TimeOut="0" UIName="#ConfigureCertificates" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-addstore -f "MY" "@globalSetupPath/@\SetupSupport\WIF\Certificates\IPKey.cer"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-addstore -f "ROOT" "@globalSetupPath/@\SetupSupport\WIF\Certificates\IPKey.cer"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-addstore -f "MY" "@globalSetupPath/@\SetupSupport\WIF\Certificates\RPKey.cer"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\regsvr32.exe</cmd>
            <args>/s "@globalSetupPath/@\SetupSupport\WIF\Certificates\capicom.dll"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\syswow64\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\WIF\Certificates\cstore.vbs" import -l LM "@globalSetupPath/@\SetupSupport\WIF\Certificates\IPKey.pfx" "indigo"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\syswow64\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\WIF\Certificates\cstore.vbs" import -l LM "@globalSetupPath/@\SetupSupport\WIF\Certificates\RPKey.pfx" "indigo"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>"@globalSetupPath/@\SetupSupport\WIF\Certificates\WinHttpCertCfg.exe"</cmd>
            <args>-g -a "@globalNetworkServiceLocalizedNameNoDomain/@" -c LOCAL_MACHINE\MY -s IPKey"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>"@globalSetupPath/@\SetupSupport\WIF\Certificates\WinHttpCertCfg.exe"</cmd>
            <args>-g -a "@globalNetworkServiceLocalizedNameNoDomain/@" -c LOCAL_MACHINE\MY -s RPKey"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\regsvr32.exe</cmd>
            <args>/u /s "@globalSetupPath/@\SetupSupport\WIF\Certificates\capicom.dll"</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="ConfigureCertificates" EstTime="0" TimeOut="0" UIName="#ConfigureCertificates" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-addstore -f "MY" "@globalSetupPath/@\SetupSupport\WIF\Certificates\IPKey.cer"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-addstore -f "ROOT" "@globalSetupPath/@\SetupSupport\WIF\Certificates\IPKey.cer"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-addstore -f "MY" "@globalSetupPath/@\SetupSupport\WIF\Certificates\RPKey.cer"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\regsvr32.exe</cmd>
            <args>/s "@globalSetupPath/@\SetupSupport\WIF\Certificates\capicom.dll"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\WIF\Certificates\cstore.vbs" import -l LM "@globalSetupPath/@\SetupSupport\WIF\Certificates\IPKey.pfx" "indigo"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\cscript.exe</cmd>
            <args>/nologo "@globalSetupPath/@\SetupSupport\WIF\Certificates\cstore.vbs" import -l LM "@globalSetupPath/@\SetupSupport\WIF\Certificates\RPKey.pfx" "indigo"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>"@globalSetupPath/@\SetupSupport\WIF\Certificates\WinHttpCertCfg.exe"</cmd>
            <args>-g -a "@globalNetworkServiceLocalizedNameNoDomain/@" -c LOCAL_MACHINE\MY -s IPKey"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>"@globalSetupPath/@\SetupSupport\WIF\Certificates\WinHttpCertCfg.exe"</cmd>
            <args>-g -a "@globalNetworkServiceLocalizedNameNoDomain/@" -c LOCAL_MACHINE\MY -s RPKey"</args>
          </RunExecutableWithReturn>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>%systemroot%\system32\regsvr32.exe</cmd>
            <args>/u /s "@globalSetupPath/@\SetupSupport\WIF\Certificates\capicom.dll"</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="ConfigureVirtualDirectory" EstTime="500" TimeOut="100000" UIName="#CreateVirtualDirectories" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>@globalVirtualRoot</nameDirectory>
          </DeleteVirtualDirectory>
          <CreateVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>@globalVirtualRoot</nameDirectory>
            <realPath>@globalProgramFileFolder/@\Applications\ApplicationFramework</realPath>
            <defaultDoc>Default.aspx</defaultDoc>
          </CreateVirtualDirectory>
          <CreateVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>HierarchyManager</nameDirectory>
            <realPath>@globalProgramFileFolder/@\Applications\HierarchyManager</realPath>
            <defaultDoc></defaultDoc>
          </CreateVirtualDirectory>
          <!--Add binding to the 'Default Web Site'-->
          <AddSiteBinding Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Couldnotaddsitebinding">
            <siteName>Default Web Site</siteName>
            <ipAddress>*</ipAddress>
            <tcpPort>443</tcpPort>
            <hostHeader></hostHeader>
            <protocol>https</protocol>
          </AddSiteBinding>
          <!--Add the IPKey SSL certificate to the https binding for the site.-->
          <AddSSLCertificate Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Couldnotaddsecuritycertificate">
            <siteName>Default Web Site</siteName>
            <ipAddress>*</ipAddress>
            <tcpPort>443</tcpPort>
            <hostHeader></hostHeader>
            <protocol>https</protocol>
            <certHash>8fe3fe66e7c82b877d9f6139e3b100435e9a3bac</certHash>
            <certStore>MY</certStore>
          </AddSSLCertificate>
        </Method>
      </Request>
      <Request Name="VirtualVersion" EstTime="500" TimeOut="100000" UIName="#ConfigureVirtualDirectoryVersi" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetVirtualRootToVersion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <rootName>@globalVirtualRoot</rootName>
            <version>4</version>
          </SetVirtualRootToVersion>
          <SetVirtualRootToVersion Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <rootName>HierarchyManager</rootName>
            <version>4</version>
          </SetVirtualRootToVersion>
        </Method>
      </Request>
      <!--Create Application Pool for both ApplicationFramework and Security Service-->
      <Request Name="ConfigureApplicationPool" EstTime="500" TimeOut="100000" UIName="#ConfigureApplicationPools" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalOSType>WindowsServer2008|Windows7|WindowsServer2008R2</globalOSType>
        </ConditionTrue>
        <Method>
          <!--Create the Application Pool-->
          <CreateAppPool Library="IISManager" Class="Installer.InstallTools.IISManager">
            <metabasePath>IIS://@globalMachineName/@/W3SVC/AppPools</metabasePath>
            <appPoolName>Application Modules AppPool</appPoolName>
          </CreateAppPool>
          <!--Set it to start immediately-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "Application Modules AppPool" /autoStart:True </args>
          </RunExecutable>
          <!--Set it to use .NET Framework 4.0-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "Application Modules AppPool" /managedRuntimeVersion:v4.0 </args>
          </RunExecutable>
          <!--Set ManagedPipelineMode to 'Classic'-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set apppool /apppool.name: "Application Modules AppPool" /ManagedPipeLineMode:Integrated</args>
          </RunExecutable>
          <!--Set the identity to LocalSystem-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set AppPool "Application Modules AppPool" -processModel.identityType:LocalSystem</args>
          </RunExecutable>
          <!--Configures application pool recycling-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>recycle apppool "Application Modules AppPool"</args>
          </RunExecutable>
          <!--Set virtual directories to use the newly created app pool-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set app "Default Web Site"/@globalVirtualRoot/@ /applicationPool:"Application Modules AppPool"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <args>set app "Default Web Site/HierarchyManager" /applicationPool:"Application Modules AppPool"</args>
          </RunExecutable>
          <!--Set web server compression-->
          <SetHttpCompressionMimeType Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <mimeType>application/msbin1</mimeType>
            <collectionType>dynamicTypes</collectionType>
            <enable>True</enable>
          </SetHttpCompressionMimeType>
          <SetHttpCompressionMimeType Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <mimeType>application/soap+xml</mimeType>
            <collectionType>dynamicTypes</collectionType>
            <enable>True</enable>
          </SetHttpCompressionMimeType>
          <SetHttpCompressionMimeType Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <mimeType>application/soap+xml; charset=utf-8</mimeType>
            <collectionType>dynamicTypes</collectionType>
            <enable>True</enable>
          </SetHttpCompressionMimeType>
          <SetHttpCompressionMimeType Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <mimeType>application/soap+xml; charset=ISO-8895-1</mimeType>
            <collectionType>dynamicTypes</collectionType>
            <enable>True</enable>
          </SetHttpCompressionMimeType>
        </Method>
      </Request>
      <Request Name="UpdateWebConfig" EstTime="500" TimeOut="100000" UIName="#UpdateWebConfig" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\ApplicationFramework</directory>
            <configName>web.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>ApplicationModulesEntities</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>metadata=res://*/ApplicationModulesModel.csdl|res://*/ApplicationModulesModel.ssdl|res://*/ApplicationModulesModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True"</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\ApplicationFramework</directory>
            <configName>web.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Inventory</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\ApplicationFramework</directory>
            <configName>web.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>ApplicationFramework</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\ApplicationFramework</directory>
            <configName>web.config</configName>
            <idAttributeName>key</idAttributeName>
            <idAttributeValue>ServiceInventoryEndpoint</idAttributeValue>
            <targetAttributeName>value</targetAttributeName>
            <targetNewValue><![CDATA[http://@globalMachineName/@:23102/CoreServicesHost/Inventory/InventoryService]]></targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\HierarchyManager</directory>
            <configName>web.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>ApplicationFramework</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\HierarchyManager</directory>
            <configName>web.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Metadata</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\system\ReportDataService</directory>
            <configName>web.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Metadata</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\HierarchyManager</directory>
            <configName>web.config</configName>
            <idAttributeName>key</idAttributeName>
            <idAttributeValue>ServiceInventoryEndpoint</idAttributeValue>
            <targetAttributeName>value</targetAttributeName>
            <targetNewValue><![CDATA[http://@globalMachineName/@:23102/CoreServicesHost/Inventory/InventoryService]]></targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\system\ReportDataService</directory>
            <configName>web.config</configName>
            <idAttributeName>key</idAttributeName>
            <idAttributeValue>ServiceInventoryEndpoint</idAttributeValue>
            <targetAttributeName>value</targetAttributeName>
            <targetNewValue><![CDATA[http://@globalMachineName/@:23102/CoreServicesHost/Inventory/InventoryService]]></targetNewValue>
          </SetConfigAddElementValue>
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\ApplicationFramework</filePath>
            <fileName>web.config</fileName>
            <oldString>localhost</oldString>
            <newString>@globalMachineName/@</newString>
          </replaceStringInFile>
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\HierarchyManager</filePath>
            <fileName>web.config</fileName>
            <oldString>localhost</oldString>
            <newString>@globalMachineName/@</newString>
          </replaceStringInFile>
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\ApplicationFramework</filePath>
            <fileName>Framework.xml</fileName>
            <oldString>localhost</oldString>
            <newString>@globalMachineName/@</newString>
          </replaceStringInFile>
          <replaceStringInFilesWithRandom Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Web</filePath>
            <fileName>web.config</fileName>
            <filePath1>@globalProgramFileFolder/@\Applications\ApplicationFramework</filePath1>
            <fileName1>web.config</fileName1>
            <oldString>1337ROR</oldString>
          </replaceStringInFilesWithRandom>
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\ApplicationFramework</filePath>
            <fileName>web.config</fileName>
            <oldString>SchneiderElectric.UI</oldString>
            <newString>UI</newString>
          </replaceStringInFile>
          <AddWebConfigElement Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <xmlFile>@globalProgramFileFolder/@\Applications\ApplicationFramework\Web.config</xmlFile>
            <!--Always wrap the newElement in a CDATA tag else all quotation marks will have to be escaped-->
            <newElement><![CDATA[<add key="XapVersionDate" value="20130801"/>]]></newElement>
            <!--This parameter is optional. Leave it blank if no comments are needed-->
            <comment><![CDATA[The Version Date setting must be incremented during upgrades or hotfixes, in order to overcoming browser caching on new XAP files. The format of the date string is "yyyyMMdd"]]></comment>
            <!--This is the location where the newElement should be created. xPath is case-sensitive and has to be in the correct format. Therefore, ./system.serviceModel/services will FAIL. The root element has to be correct and explicitly called out.-->
            <xPath>/configuration/appSettings</xPath>
            <!--This indicates whether or not to create the xPath above if not already exists-->
            <createMissingXPath>True</createMissingXPath>
          </AddWebConfigElement>
          <AddWebConfigElement Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <xmlFile>@globalProgramFileFolder/@\Applications\ApplicationFramework\Web.config</xmlFile>
            <!--Always wrap the newElement in a CDATA tag else all quotation marks will have to be escaped-->
            <newElement><![CDATA[<add key="LoggingLevel" value="2" />]]></newElement>
            <!--This parameter is optional. Leave it blank if no comments are needed-->
            <comment></comment>
            <!--This is the location where the newElement should be created. xPath is case-sensitive and has to be in the correct format. Therefore, ./system.serviceModel/services will FAIL. The root element has to be correct and explicitly called out.-->
            <xPath>/configuration/appSettings</xPath>
            <!--This indicates whether or not to create the xPath above if not already exists-->
            <createMissingXPath>True</createMissingXPath>
          </AddWebConfigElement>
        </Method>
      </Request>
      <Request Name="UpdateFrameworkXml" EstTime="500" TimeOut="100000" UIName="#Updateframeworkxml" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalAction>Upgrade</globalAction>
        </ConditionTrue>
        <ConditionFalse>
          <globalPreviousVersion>6.0</globalPreviousVersion>
        </ConditionFalse>
        <Method>
          <!--Take a backup of the new framework.xml file-->
          <CopyFile Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcopyframeworkxml">
            <sourcePath>@globalProgramFileFolder/@\Applications\ApplicationFramework</sourcePath>
            <sourceFile>Framework.xml</sourceFile>
            <destPath>@globalProgramFileFolder/@\Applications\backups</destPath>
            <destFile>Framework_@globalDisplayVersion/@.xml</destFile>
          </CopyFile>
          <!--merge the original framework.xml with the new framework.xml to produce the final file-->
          <UpdateFrameworkXml Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldnotcreateframeworkxml">
            <origFKXml>@globalProgramFileFolder/@\Applications\backups\Framework_@globalPreviousVersion/@.xml</origFKXml>
            <newFKXml>@globalProgramFileFolder/@\Applications\backups\Framework_@globalDisplayVersion/@.xml</newFKXml>
            <finalFKXml>@globalProgramFileFolder/@\Applications\ApplicationFramework\Framework.xml</finalFKXml>
          </UpdateFrameworkXml>
          <!--remove references to SchneiderElectric. in the namespaces when upgrading from versions other than 6.0-->
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\ApplicationFramework</filePath>
            <fileName>Framework.xml</fileName>
            <oldString>SchneiderElectric.UI</oldString>
            <newString>UI</newString>
          </replaceStringInFile>
        </Method>
      </Request>
      <Request Name="StopServices" EstTime="1000" TimeOut="100000" UIName="#StoppingServices" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- Stop services just in case we are doing a repair -->
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>ProviderEngineHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>DataServicesHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>CoreServicesHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
        </Method>
      </Request>
      <!-- BEGIN: AppMods Database Deployment - Windows Authentication -->
      <Request Name="ScriptDatabaseWindowsAuthX64" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>true</globalIsx64>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ScriptDatabaseWindowsAuthX86" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalIsx64>false</globalIsx64>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%ProgramFiles%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;Integrated Security=true;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CreateDatabaseWindowsAuth" EstTime="500" TimeOut="1200000" UIName="#CreateDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ApplicationModules</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\ApplicationModules</filePath>
            <mdffileName>ApplicationModules.mdf</mdffileName>
            <ldffileName>ApplicationModules_log.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -E -v DatabaseName="ApplicationModules" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" -o "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
        </Method>
      </Request>
      <!-- END: Database Deployment - Windows Authentication -->
      <!-- BEGIN: AppMods Database Deployment - Sql Authentication -->
      <Request Name="ScriptDatabaseSqlAuthX64" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
          <globalIsx64>true</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%PROGRAMFILES(X86)%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="ScriptDatabaseSqlAuthX86" EstTime="500" TimeOut="600000" UIName="#CreatingDatabaseServerScripts" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
          <globalIsx64>false</globalIsx64>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%PROGRAMFILES%\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe</cmd>
            <args>/Action:Script /OutputPath:"@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" /SourceFile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ApplicationModules.dacpac" /TargetConnectionString:"Data Source=@globalEEMDbServer/@;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;Pooling=False" /Profile:"@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\production.publish.xml" /Variables:DataFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:LogFilePath="@globalDatabaseFolder/@\Database\ApplicationModules" /Variables:ReferenceDataFilesPath="@globalProgramFileFolder/@\system\etc\Database\ApplicationModules\ReferenceData"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="CreateDatabaseSqlAuth" EstTime="500" TimeOut="1200000" UIName="#CreateDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <CreateOrAttachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ApplicationModules</dbName>
            <connectionString>@globalConnectionString</connectionString>
            <filePath>@globalDatabaseFolder/@\Database\ApplicationModules</filePath>
            <mdffileName>ApplicationModules.mdf</mdffileName>
            <ldffileName>ApplicationModules_log.ldf</ldffileName>
            <cmd>sqlcmd.exe</cmd>
            <args>-S @globalEEMDbServer/@ -U @globalEEMDbLoginId/@ -P @globalEEMDbLoginPassword/@ -v DatabaseName="ApplicationModules" -v DefaultDataPath="@globalDatabaseFolder/@\" -v DefaultLogPath="@globalDatabaseFolder/@\" -i "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.sql" -o "@globalDatabaseFolder/@\Diagnostic\ApplicationModules.log"</args>
            <version>100|110</version>
          </CreateOrAttachDatabase>
        </Method>
      </Request>
      <!-- END: Database Deployment - Sql Authentication -->
      <Request Name="CheckAppModsDatabase" EstTime="500" TimeOut="100000" UIName="#CheckApplicationModulesDatabase" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Errorsettingconnectionstring">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <DatabaseExists Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#TheApplicationModulesDatabasec">
            <dbName>ApplicationModules</dbName>
          </DatabaseExists>
          <CheckFileForSuccess Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#TheApplicationModulesDatabasec">
            <fileName>@globalDatabaseFolder/@\Diagnostic\ApplicationModules.log</fileName>
            <successString>update complete</successString>
          </CheckFileForSuccess>
        </Method>
      </Request>
      <Request Name="ConfigureSQL" EstTime="500" TimeOut="600000" UIName="#ConfigureSQLServer" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString/@</connectionString>
          </SetConnectionString>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Couldnotconfigureuser">
            <sqlQuery>ALTER LOGIN [AMUser] WITH PASSWORD=N'@globalAppModsUserPassword/@'; GRANT CONNECT TO [AMUser] AS [dbo];</sqlQuery>
            <dbName>ApplicationModules</dbName>
          </RunQuery>
          <!--Map users to logins just in case they are orphaned-->
          <MapSqlUserToLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <userName>ionedsd</userName>
            <loginName>ionedsd</loginName>
          </MapSqlUserToLogin>
          <MapSqlUserToLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Data</dbName>
            <userName>Report</userName>
            <loginName>Report</loginName>
          </MapSqlUserToLogin>
          <MapSqlUserToLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <dbName>ION_Network</dbName>
            <userName>ionedsd</userName>
            <loginName>ionedsd</loginName>
          </MapSqlUserToLogin>
        </Method>
      </Request>
<!--
      <Request Name="CreateApplicationsMaintenanceUser" EstTime="500" TimeOut="800000" UIName="#CreateApplicationsMaintenanceUser" ProgressBar="Animation" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <CreateProductLogin Library="Security.Configuration" Class="Security.Configuration.ProductLoginHelper" UIMessageOnFail="#CreateMaintenanceProductLoginFailed">
            <connectionString>@globalConnectionString</connectionString>
            <name>@Custom_DBMaintenanceUsername</name>
            <phrase>@globalBrandSQLPwd</phrase>
            <databaseAuthenticationType>Windows</databaseAuthenticationType>
            <databases>ApplicationModules</databases>
            <roles>Maintenance,db_backupoperator,db_ddladmin</roles>
          </CreateProductLogin>
        </Method>
      </Request>
-->
      <!-- User Story #9555:  Re-enable the "Reports" tab for SQL Express. -->
      <!--<Request Name="DisableAppModsReportTab" EstTime="500" TimeOut="100000" UIName="#ConfigureSQLServer" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer</globalSetupType>
          <globalIsSQLExpress>true</globalIsSQLExpress>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString/@</connectionString>
          </SetConnectionString>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Couldnotconfigureappmodsdb">
            <sqlQuery>EXEC [Configuration].[WriteConfigurationValue] N'ApplicationFramework', N'ApplicationBlacklist', N'ApplicationBlacklist', N'Applications that should not be displayed.', N'Reports', N'GlobalSetting';</sqlQuery>
            <dbName>ApplicationModules</dbName>
          </RunQuery>
        </Method>
      </Request>-->
      <Request Name="EnableAppModsReportTab" EstTime="500" TimeOut="100000" UIName="#ConfigureSQLServer" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer</globalSetupType>
          <!-- User Story #9555:  Re-enable the "Reports" tab for SQL Express. -->
          <!--<globalIsSQLExpress>false</globalIsSQLExpress>-->
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Aproblemoccurredsettingtheconn">
            <connectionString>@globalConnectionString/@</connectionString>
          </SetConnectionString>
          <RunQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Couldnotconfigureappmodsdb">
            <sqlQuery>EXEC [Configuration].[WriteConfigurationValue] N'ApplicationFramework', N'ApplicationBlacklist', N'ApplicationBlacklist', N'Applications that should not be displayed.', N'', N'GlobalSetting';</sqlQuery>
            <dbName>ApplicationModules</dbName>
          </RunQuery>
        </Method>
      </Request>
      <Request Name="RunUpgradetool" EstTime="500" TimeOut="100000" UIName="#RunUpgradeTool" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>SQLServerAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>@globalSetupPath/@\SetupSupport\Tools\UpgradeImages.exe</cmd>
            <args>Version=@globalDisplayVersion/@ "RegistryRoot=@globalBrandRegistryRoot/@" "Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=@globalEEMDbLoginId/@;Password=@globalEEMDbLoginPassword/@;MultipleActiveResultSets=True"</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="RunUpgradetool" EstTime="500" TimeOut="100000" UIName="#RunUpgradeTool" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMDatabase</globalSetupType>
          <globalSqlLogOnMode>WindowsAuthenticationMode</globalSqlLogOnMode>
        </ConditionTrue>
        <Method>
          <RunExecutableWithReturn Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>@globalSetupPath/@\SetupSupport\Tools\UpgradeImages.exe</cmd>
            <args>Version=@globalDisplayVersion/@ "RegistryRoot=@globalBrandRegistryRoot/@" "Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;Integrated Security=true;MultipleActiveResultSets=True"</args>
          </RunExecutableWithReturn>
        </Method>
      </Request>
      <Request Name="ConfigureDSD" EstTime="500" TimeOut="600000" UIName="#ConfigureDSD" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMDatabase</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <ExecuteNonQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <commandString>EXEC [Configuration].[WriteConfigurationValue] 'ION Enterprise-Default', 'DatabaseConnectivity', 'IonDataConnectionString', 'The connection string to the ION_Data database.', 'server=@globalEEMDbServer/@;database=ION_Data;uid=ionedsd;pwd=exw1BStLAmzokMLd4uiXLouELuCl037YUD;MultipleActiveResultSets=True', NULL</commandString>
            <dbName>ApplicationModules</dbName>
          </ExecuteNonQuery>
          <ExecuteNonQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <commandString>EXEC [Configuration].[WriteConfigurationValue] 'ION Enterprise-Default', 'DatabaseConnectivity', 'IonNetworkConnectionString', 'The connection string to the ION_Network database.', 'server=@globalEEMDbServer/@;database=ION_Network;uid=ionedsd;pwd=exw1BStLAmzokMLd4uiXLouELuCl037YUD;MultipleActiveResultSets=True', NULL</commandString>
            <dbName>ApplicationModules</dbName>
          </ExecuteNonQuery>
          <ExecuteNonQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <commandString>EXEC [Configuration].[WriteConfigurationValue] 'ION Enterprise-Default', 'DatabaseConnectivity', 'DatabaseCommandTimeout', 'The number of seconds before the SQL Command times out.', '300', NULL</commandString>
            <dbName>ApplicationModules</dbName>
          </ExecuteNonQuery>
          <ExecuteNonQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <commandString>EXEC [Configuration].[WriteConfigurationValue] 'ION Enterprise-Default', 'DatabaseConnectivity', 'SampleAvailabilityRefreshRateInSeconds', 'The number of seconds between updates to the availability information in the DSB.', '300', NULL</commandString>
            <dbName>ApplicationModules</dbName>
          </ExecuteNonQuery>
          <ExecuteNonQuery Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <commandString>EXEC [Configuration].[WriteConfigurationValue] 'ION Enterprise-Default', 'RealTime', 'WebServiceAddress', 'The address of the RealTime webservice.', '<![CDATA[http://localhost/Webservices/WebRealTime.svc]]>', NULL</commandString>
            <dbName>ApplicationModules</dbName>
          </ExecuteNonQuery>
          <SetDSDSignature Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL">
            <filePath>@globalProgramFileFolder/@\Applications\bin</filePath>
            <fileName>DataServicesHost.config</fileName>
            <oldString>[DATA_SOURCE_SIGNATURE]</oldString>
            <newString>@globalIonDataSourceSignature/@</newString>
            <dsdFamilyName>ION Enterprise</dsdFamilyName>
            <dbName>ApplicationModules</dbName>
          </SetDSDSignature>
        </Method>
      </Request>
      <Request Name="ConfigureHierarchyConfig" EstTime="500" TimeOut="600000" UIName="#ConfigureHierarchyConfig" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\bin</filePath>
            <fileName>HierarchyConfig.exe.config</fileName>
            <oldString>[SERVICE_INVENTORY_ENDPOINT]</oldString>
            <newString><![CDATA[http://@globalMachineName/@:23102/CoreServicesHost/Inventory/InventoryService]]></newString>
          </replaceStringInFile>
        </Method>
      </Request>
      <Request Name="ConfigureFrameworkServiceHost" EstTime="500" TimeOut="600000" UIName="#ConfiguringFrameworkServiceHos" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\bin</filePath>
            <fileName>Framework.ServiceHost.exe.config</fileName>
            <oldString>[SERVICE_INVENTORY_ENDPOINT]</oldString>
            <newString><![CDATA[http://@globalMachineName/@:23102/CoreServicesHost/Inventory/InventoryService]]></newString>
          </replaceStringInFile>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\bin</directory>
            <configName>Framework.ServiceHost.exe.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Configuration</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\bin</directory>
            <configName>Framework.ServiceHost.exe.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Inventory</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\bin</directory>
            <configName>Framework.ServiceHost.exe.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Diagnostic</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\bin</directory>
            <configName>Framework.ServiceHost.exe.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Internationalization</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\bin</directory>
            <configName>Framework.ServiceHost.exe.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>DataStore</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\bin</directory>
            <configName>Framework.ServiceHost.exe.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>DataSourceBus</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
          <SetConfigAddElementValue Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <directory>@globalProgramFileFolder/@\Applications\bin</directory>
            <configName>Framework.ServiceHost.exe.config</configName>
            <idAttributeName>name</idAttributeName>
            <idAttributeValue>Metadata</idAttributeValue>
            <targetAttributeName>connectionString</targetAttributeName>
            <targetNewValue>Data Source=@globalEEMDbServer/@;Initial Catalog=ApplicationModules;User Id=AMUser;Password=@globalAppModsUserPassword/@;MultipleActiveResultSets=True</targetNewValue>
          </SetConfigAddElementValue>
        </Method>
      </Request>
      <Request Name="ConfigureConfigServiceTool" EstTime="500" TimeOut="600000" UIName="#ConfigureConfigServiceTool" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <replaceStringInFile Library="IONBusiness" Class="Installer.InstallTools.IONBusinessConfig">
            <filePath>@globalProgramFileFolder/@\Applications\bin</filePath>
            <fileName>ConfigServiceTool.exe.config</fileName>
            <oldString>[SERVICE_INVENTORY_ENDPOINT]</oldString>
            <newString><![CDATA[http://@globalMachineName/@:23102/CoreServicesHost/Inventory/InventoryService]]></newString>
          </replaceStringInFile>
        </Method>
      </Request>
      <Request Name="ConfigureObjectFactoryTools" EstTime="500" TimeOut="600000" UIName="#ConfiguringObjectFactoryTools" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CopyFileWithOverwrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <sourcePath>@globalProgramFileFolder/@\Applications\bin</sourcePath>
            <sourceFile>Modules.CoreServices.dll</sourceFile>
            <destPath>@globalProgramFileFolder/@\Applications\ApplicationFramework\bin</destPath>
            <destFile>Modules.CoreServices.dll</destFile>
          </CopyFileWithOverwrite>
          <CopyFileWithOverwrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <sourcePath>@globalProgramFileFolder/@\Applications\bin</sourcePath>
            <sourceFile>Antlr3.Runtime.dll</sourceFile>
            <destPath>@globalProgramFileFolder/@\Applications\ApplicationFramework\bin</destPath>
            <destFile>Antlr3.Runtime.dll</destFile>
          </CopyFileWithOverwrite>
          <RunExecutableWithExitCode Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>@globalProgramFileFolder/@\Applications\bin\ObjectFactoryTools.exe</cmd>
            <args>configure</args>
            <failExitCodeAbove>1</failExitCodeAbove>
          </RunExecutableWithExitCode>
          <RunExecutableWithExitCode Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>@globalProgramFileFolder/@\Applications\ApplicationFramework\bin\ObjectFactoryTools.exe</cmd>
            <args>configure "@globalProgramFileFolder/@\Applications\ApplicationFramework\bin"</args>
            <failExitCodeAbove>1</failExitCodeAbove>
          </RunExecutableWithExitCode>
          <RunExecutableWithExitCode Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>@globalProgramFileFolder/@\Applications\HierarchyManager\bin\ObjectFactoryTools.exe</cmd>
            <args>configure "@globalProgramFileFolder/@\Applications\HierarchyManager\bin"</args>
            <failExitCodeAbove>1</failExitCodeAbove>
          </RunExecutableWithExitCode>
          <RunExecutableWithExitCode Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>@globalProgramFileFolder/@\system\ReportDataService\bin\ObjectFactoryTools.exe</cmd>
            <args>configure</args>
            <failExitCodeAbove>1</failExitCodeAbove>
          </RunExecutableWithExitCode>
        </Method>
      </Request>
      <Request Name="RegisterServices" EstTime="500" TimeOut="100000" UIName="#RegisterServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <RegisterServiceIfNotExists Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>CoreServicesHost</serviceName>
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe</cmd>
            <args>/Account=LocalSystem /ServiceHostInstanceName=CoreServicesHost /i "@globalProgramFileFolder/@\Applications\bin\Framework.ServiceHost.exe"</args>
          </RegisterServiceIfNotExists>
          <RegisterServiceIfNotExists Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>DataServicesHost</serviceName>
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe</cmd>
            <args>/Account=LocalSystem /ServiceHostInstanceName=DataServicesHost /i "@globalProgramFileFolder/@\Applications\bin\Framework.ServiceHost.exe"</args>
          </RegisterServiceIfNotExists>
          <RegisterServiceIfNotExists Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>ProviderEngineHost</serviceName>
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe</cmd>
            <args>/Account=LocalSystem /ServiceHostInstanceName=ProviderEngineHost /i "@globalProgramFileFolder/@\Applications\bin\Framework.ServiceHost.exe"</args>
          </RegisterServiceIfNotExists>
        </Method>
      </Request>
      <Request Name="AddServiceConfiguration" EstTime="500" TimeOut="100000" UIName="#ConfigureServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalIsSelectedSqlInstanceLocal>true</globalIsSelectedSqlInstanceLocal>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config CoreServicesHost depend= @globalSQLServiceName/@</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>failure CoreServicesHost reset= 0 actions= restart/60000</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config DataServicesHost depend= @globalSQLServiceName/@/CoreServicesHost</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>failure DataServicesHost reset= 0 actions= restart/60000</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config ProviderEngineHost depend= @globalSQLServiceName/@/DataServicesHost</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>failure ProviderEngineHost reset= 0 actions= restart/60000</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="AddServiceConfiguration" EstTime="500" TimeOut="100000" UIName="#ConfigureServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalIsSelectedSqlInstanceLocal>false</globalIsSelectedSqlInstanceLocal>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>failure CoreServicesHost reset= 0 actions= restart/60000</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config DataServicesHost depend= CoreServicesHost</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>failure DataServicesHost reset= 0 actions= restart/60000</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>config ProviderEngineHost depend= DataServicesHost</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\sc.exe</cmd>
            <args>failure ProviderEngineHost reset= 0 actions= restart/60000</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="VerifyRegisteredServices" EstTime="500" TimeOut="100000" UIName="#VerifyRegisteredServices" ProgressBar="Progress" ActionOnFail="Stop">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>CoreServicesHost</serviceName>
            <machineName>@globalMachineName/@</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>DataServicesHost</serviceName>
            <machineName>@globalMachineName/@</machineName>
          </CheckWindowServiceExisting>
          <CheckWindowServiceExisting Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotbereg">
            <serviceName>ProviderEngineHost</serviceName>
            <machineName>@globalMachineName/@</machineName>
          </CheckWindowServiceExisting>
        </Method>
      </Request>
      <Request Name="UpdatePerms" EstTime="500" TimeOut="600000" UIName="#UpdateFilePermissions" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
          <globalOSType>WindowsServer2008|Windows7|WindowsServer2008R2</globalOSType>
        </ConditionTrue>
        <Method>
          <RunExecutableOn64bitOS Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>netsh.exe</cmd>
            <args>http add urlacl url=http://+:23102/ user=system</args>
          </RunExecutableOn64bitOS>
          <!--NOTE: SETTING THE ASP.NET CLASSIC APPLICATION POOL TO USE THE LOCAL SYSTEM ACCOUNT. WILL NEED TO CHANGE THIS LATER IN THE PROJECT-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>set AppPool "ION AppPool" -processModel.identityType:LocalSystem</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>set AppPool "DefaultAppPool" -processModel.identityType:NetworkService</args>
          </RunExecutable>
          <!--Set web content expiry information-->
          <SetStaticContentExpiration Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Couldntrunexe">
            <cmd>%systemroot%\system32\inetsrv\AppCmd.exe</cmd>
            <appPath>Default Web Site/@globalVirtualRoot/@</appPath>
            <secondsToAddToCurrentTime>0</secondsToAddToCurrentTime>
          </SetStaticContentExpiration>
          <!--Configures application pool recycling-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>recycle apppool "Application Modules AppPool"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Couldntrunexe">
            <cmd>%windir%\system32\inetsrv\appcmd.exe</cmd>
            <args>recycle apppool "ION AppPool"</args>
          </RunExecutable>
        </Method>
        <!--Set permission for the BackgroundImages directory-->
        <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
          <folderName>@globalProgramFileFolder/@\Applications\ApplicationFramework\BackgroundImages</folderName>
        </GiveUsersReadWrite>
        <!--Set permission for the Logos directory-->
        <GiveUsersReadWrite Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldnotsetuserpermissionsonCo">
          <folderName>@globalProgramFileFolder/@\Applications\ApplicationFramework\Logos</folderName>
        </GiveUsersReadWrite>
      </Request>
      <Request Name="StartCoreHostService" EstTime="500" TimeOut="300000" UIName="#StartCoreHostService" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- As a measure for 7.0 -> 7.0.1 upgrades only we need to disable the Application Host services to prevent them from restarting -->
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>CoreServicesHost</serviceName>
            <startupType>AUTO</startupType>
          </ChangeServiceStartUp>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>CoreServicesHost</displayServiceName>
            <timeout>300</timeout>
          </StartServiceWithTimeout>
        </Method>
      </Request>
      <Request Name="StartDataHostService" EstTime="500" TimeOut="300000" UIName="#StartDataHostService" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- As a measure for 7.0 -> 7.0.1 upgrades only we need to disable the Application Host services to prevent them from restarting -->
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>DataServicesHost</serviceName>
            <startupType>AUTO</startupType>
          </ChangeServiceStartUp>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>DataServicesHost</displayServiceName>
            <timeout>300</timeout>
          </StartServiceWithTimeout>
        </Method>
      </Request>
      <Request Name="StartProviderHostService" EstTime="500" TimeOut="300000" UIName="#StartProviderHostService" ProgressBar="Progress" ActionOnFail="Prompt">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- As a measure for 7.0 -> 7.0.1 upgrades only we need to disable the Application Host services to prevent them from restarting -->
          <ChangeServiceStartUp Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>ProviderEngineHost</serviceName>
            <startupType>AUTO</startupType>
          </ChangeServiceStartUp>
          <StartServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <displayServiceName>ProviderEngineHost</displayServiceName>
            <timeout>300</timeout>
          </StartServiceWithTimeout>
        </Method>
      </Request>
      <Request Name="CreateWebAppNormalShortcut" EstTime="500" TimeOut="2000000" UIName="#Addshortcuts" ProgressBar="Progress" ActionOnFile="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <!--Create shortcut on the Start menu-->
          <CreateWebPageShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <localUrl>@globalVirtualRoot/@</localUrl>
            <shortcutDestination>@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@</shortcutDestination>
            <description>Web Applications</description>
            <protocol>http</protocol>
            <iconFileLocation>@globalProgramFileFolder/@\Applications\ApplicationFramework\favicon.ico</iconFileLocation>
            <onDesktop>False</onDesktop>
            <machineName>@globalMachineName</machineName>
          </CreateWebPageShortcut>
          <!--Create shortcut on the Desktop-->
          <CreateWebPageShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <localUrl>@globalVirtualRoot/@</localUrl>
            <shortcutDestination>@globalBrandProductRangeAndFormalName/@</shortcutDestination>
            <description>Web Applications</description>
            <protocol>http</protocol>
            <iconFileLocation>@globalProgramFileFolder/@\Applications\ApplicationFramework\favicon.ico</iconFileLocation>
            <onDesktop>True</onDesktop>
            <machineName>@globalMachineName</machineName>
          </CreateWebPageShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Designer.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\designer.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Management Console.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\ManagementConsole.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\repgen.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Vista.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\vista.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Designer.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\designer.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Management Console.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\ManagementConsole.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\repgen.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Vista.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\vista.exe</targetPath>
          </AddWindowsShortcut>
        </Method>
      </Request>
      <Request Name="CreateWebAppNormalShortcut" EstTime="500" TimeOut="2000000" UIName="#Addshortcuts" ProgressBar="Progress" ActionOnFile="Continue">
        <ConditionTrue>
          <globalSetupType>Secondary|Client</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- Refresh globalVirtualRoot from registry -->
          <GetRegistryValue Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" SetReturnProperty="globalVirtualRoot">
            <regPath>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</regPath>
            <keyValue>VirtualDirectory</keyValue>
          </GetRegistryValue>
          <!--Create shortcut on the Start menu-->
          <CreateWebPageShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <localUrl>@globalVirtualRoot/@</localUrl>
            <shortcutDestination>@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@</shortcutDestination>
            <description>Web Applications</description>
            <protocol>http</protocol>
            <iconFileLocation>@globalProgramFileFolder/@\system\bin\favicon.ico</iconFileLocation>
            <onDesktop>False</onDesktop>
            <machineName>@globalRemoteServer</machineName>
          </CreateWebPageShortcut>
          <!--Create shortcut on the Desktop-->
          <CreateWebPageShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <localUrl>@globalVirtualRoot/@</localUrl>
            <shortcutDestination>@globalBrandProductRangeAndFormalName/@</shortcutDestination>
            <description>Web Applications</description>
            <protocol>http</protocol>
            <iconFileLocation>@globalProgramFileFolder/@\system\bin\favicon.ico</iconFileLocation>
            <onDesktop>True</onDesktop>
            <machineName>@globalRemoteServer</machineName>
          </CreateWebPageShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Designer.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\designer.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Management Console.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\ManagementConsole.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\repgen.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Vista.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\vista.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Designer.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\designer.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Management Console.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\ManagementConsole.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\repgen.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Vista.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\vista.exe</targetPath>
          </AddWindowsShortcut>
        </Method>
      </Request>
      <Request Name="CreateRepGenShortcut" EstTime="500" TimeOut="2000000" UIName="#Addshortcuts" ProgressBar="Progress" ActionOnFile="Continue">
        <ConditionTrue>
          <globalSetupType>ReportingClient</globalSetupType>
          <globalAction>Install</globalAction>
        </ConditionTrue>
        <Method>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\repgen.exe</targetPath>
          </AddWindowsShortcut>
          <AddWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
            <targetPath>@globalProgramFileFolder/@\system\bin\repgen.exe</targetPath>
          </AddWindowsShortcut>
        </Method>
      </Request>
      <Request Name="CreateDatabaseScheduledTasks32bit" EstTime="1000" TimeOut="100000" UIName="#DatabaseMaintenanceJobInstallation" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalIsx64>false</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <CreateWeeklyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - BACKUP - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Backup.ps1" -DatabaseIdentifier ION</commandToRun>
            <dayOfWeekToRun>FRI</dayOfWeekToRun>
            <timeToRun>00:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateWeeklyTask>
          <!--Create task for ION_Network-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Network] - BACKUP - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Backup.ps1" -DatabaseIdentifier NOM</commandToRun>
            <timeToRun>01:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <!--Create DB Maintenance tasks-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier ION</commandToRun>
            <timeToRun>02:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Network] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier NOM</commandToRun>
            <timeToRun>07:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_SystemLog] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier SYSLOG</commandToRun>
            <timeToRun>07:05:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <!--Create Database Size Notification task-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - SIZE NOTIFICATION - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseSizeNotification.ps1" -DatabaseIdentifier ION</commandToRun>
            <timeToRun>03:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <!--Create Database Trim task-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_SystemLog] - TRIM - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\TrimDiagnostics.ps1" -DatabaseIdentifier SYSLOG</commandToRun>
            <timeToRun>04:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
        </Method>
      </Request>
      <!--Create this one separate because it only applies to SQL Express systems.-->
      <Request Name="CreateDatabaseScheduledTasks32bit" EstTime="1000" TimeOut="100000" UIName="#DatabaseMaintenanceJobInstallation" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalIsx64>false</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <!--Create Database Size Notification task-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - SIZE NOTIFICATION - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseSizeNotification.ps1" -DatabaseIdentifier ION</commandToRun>
            <timeToRun>03:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
        </Method>
      </Request>
      <Request Name="CreateDatabaseScheduledTasks64bit" EstTime="1000" TimeOut="100000" UIName="#DatabaseMaintenanceJobInstallation" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalIsx64>true</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <CreateWeeklyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - BACKUP - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Backup.ps1" -DatabaseIdentifier ION</commandToRun>
            <dayOfWeekToRun>FRI</dayOfWeekToRun>
            <timeToRun>00:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateWeeklyTask>
          <!--Create task for ION_Network-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Network] - BACKUP - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Backup.ps1" -DatabaseIdentifier NOM</commandToRun>
            <timeToRun>01:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <!--Create DB Maintenance tasks-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier ION</commandToRun>
            <timeToRun>02:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Network] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier NOM</commandToRun>
            <timeToRun>07:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_SystemLog] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier SYSLOG</commandToRun>
            <timeToRun>07:05:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <!--Create Database Trim task-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_SystemLog] - TRIM - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\TrimDiagnostics.ps1" -DatabaseIdentifier SYSLOG</commandToRun>
            <timeToRun>04:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
        </Method>
      </Request>
      <!--Creat this one separate because it only applies to SQL Express systems.-->
      <Request Name="CreateDatabaseScheduledTasks64bit" EstTime="1000" TimeOut="100000" UIName="#DatabaseMaintenanceJobInstallation" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalIsSQLExpress>true</globalIsSQLExpress>
          <globalIsx64>true</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <!--Create Database Size Notification task-->
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - SIZE NOTIFICATION - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseSizeNotification.ps1" -DatabaseIdentifier ION</commandToRun>
            <timeToRun>03:00:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
        </Method>
      </Request>
      <!--AppMods scheduled tasks-->
      <Request Name="CreateApplicationsDatabaseScheduledTasks32bit" EstTime="1000" TimeOut="100000" UIName="#ApplicationsDatabaseMaintenanceJobInstallation" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalIsx64>false</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - BACKUP - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Backup.ps1" -DatabaseIdentifier APPS</commandToRun>
            <timeToRun>01:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier APPS</commandToRun>
            <timeToRun>03:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - TRIM - Job</taskName>
            <commandToRun>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\TrimDiagnostics.ps1" -DatabaseIdentifier APPS</commandToRun>
            <timeToRun>02:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
        </Method>
      </Request>
      <Request Name="CreateApplicationsDatabaseScheduledTasks64bit" EstTime="1000" TimeOut="100000" UIName="#ApplicationsDatabaseMaintenanceJobInstallation" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalIsx64>true</globalIsx64>
          <globalSetupType>Primary|DbServer</globalSetupType>
        </ConditionTrue>
        <ConditionFalse>
          <globalSetupType>WebApp</globalSetupType>
        </ConditionFalse>
        <Method>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - BACKUP - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\Backup.ps1" -DatabaseIdentifier APPS</commandToRun>
            <timeToRun>01:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - MAINTENANCE - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\DatabaseMaintenance.ps1" -DatabaseIdentifier APPS</commandToRun>
            <timeToRun>03:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
          <CreateDailyTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - TRIM - Job</taskName>
            <commandToRun>%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -noninteractive -nologo -file "@globalProgramFileFolder/@\config\cfg\DbScheduledTasks\TrimDiagnostics.ps1" -DatabaseIdentifier APPS</commandToRun>
            <timeToRun>02:30:00</timeToRun>
            <endDate></endDate>
            <taskUser>@Custom_DBMaintenanceUsername</taskUser>
            <taskUserPassword>@globalBrandSQLPwd</taskUserPassword>
            <asyncExecution>false</asyncExecution>
          </CreateDailyTask>
        </Method>
      </Request>
      <!-- ****************************************************************************************************-->
      <!-- END Inclusion of Dashboards Configuration **********************************************************-->
      <!-- ****************************************************************************************************-->
      <Request Name="CleanRegistry" EstTime="500" TimeOut="6000000" UIName="#RemoveObsoleteRegistryKeys" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalAction>Upgrade</globalAction>
          <globalPreviousVersion>6.0|7.0|7.0.1|7.2</globalPreviousVersion>
        </ConditionTrue>
        <Method>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>@globalBrandRegistryRoot/@\@globalPreviousVersion</regPath>
          </DeleteRegPath>
        </Method>
      </Request>
      <!--<Request Name="InstallDeviceDrivers" EstTime="500" TimeOut="6000000" UIName="#ConfigureDeviceDrivers" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\Acti9Smartlink_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{931606AA-60E5-441A-BBB8-0908DC225269}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\Acti 9 Smartlink</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\EM4800_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{21B4EDD7-B045-4C5C-B1F8-68B7F132EC5F}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>          
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM4800-12</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM4800-24</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM4800-08 Wye</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM4800-08 Delta</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\EM1200_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{28D62CD9-2D7C-4EC6-8E14-2CD14D687444}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM1200</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM1210</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM1250</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM1251</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\iEM3155_3255_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{40F6E522-8DDC-44F7-AB4C-9B8178CCB93F}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\iEM3150</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\iEM3250</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\iEM3155</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\iEM3255</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\PM3250_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{6CFEE4BD-A2C1-48F0-8CD3-1E47CD5D9F6B}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\PM3250</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\PM3255</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\EM3500_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{375EA782-2A06-4D9F-B7D1-271777802A33}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM3550</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM3555</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\EM7000_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{6A9837C7-1812-42DF-8719-B981226C2A8A}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM7280</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\EM7230</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>
          -->
      <!--<RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/i "@globalSetupPath/@\Installers\DeviceDrivers\PM5350_en.msi" /qn REBOOT=ReallySuppress</args>
          </RunExecutable>
          <AddDWORDToRegistry Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry">
            <key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{EEB0AB7C-2EA0-4CA1-B572-983DA87BD54F}</key>
            <name>SystemComponent</name>
            <value>1</value>
          </AddDWORDToRegistry>
          <CheckRegistryKeyExistenceInView Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#devicedriverdidnotinstall">
            <key>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\DeviceInfo\PM5350</key>
            <registryView>Default</registryView>
          </CheckRegistryKeyExistenceInView>-->
      <!--
        </Method>
      </Request>-->
    </BrokerRequest>
    <BrokerRequest Name="Uninstall">
      <Request Name="CheckUserPrivileges" EstTime="1000" TimeOut="100000" UIName="#CheckUserPrivilegesRequirement" ProgressBar="Animation" ActionOnFail="Stop">
        <Method>
          <IsCurrentAdmin Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Adminprivilegeisrequired"></IsCurrentAdmin>
        </Method>
      </Request>
      <Request Name="CheckRunningApps" EstTime="500" TimeOut="120000" UIName="#CheckForRunningApplications" ProgressBar="Progress" ActionOnFail="Stop">
        <Method>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#DesignerisrunningPleasecloseth">
            <name>designer</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#DiagnosticsViewerisrunningPlea">
            <name>diagviewer</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#ManagementConsoleisrunningPlea">
            <name>managementconsole</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#RepGenisrunningPleaseclosethea">
            <name>repgen</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#VistaisrunningPleaseclosetheap">
            <name>vista</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#DeviceUpgraderisrunningPleasec">
            <name>upg_firm</name>
          </IsProcessClosed>
          <IsProcessClosed Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Taskpadisrunning">
            <name>IONTaskpad</name>
          </IsProcessClosed>
        </Method>
      </Request>
      <Request Name="RemoveServices" EstTime="500" TimeOut="600000" UIName="#RemovingServices" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <RemoveServicesFromMetadata Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController" UIMessageOnFail="#Oneormoreservicescouldnotberem">
            <regKeyRoot>@globalBrandRegistryRoot/@\@globalDisplayVersion/@</regKeyRoot>
            <regKeyMeta>@globalBrandRegistryRoot/@\@globalDisplayVersion/@\ServiceMetadata</regKeyMeta>
            <timeout>60</timeout>
          </RemoveServicesFromMetadata>
        </Method>
      </Request>
      <Request Name="DetachDBs" EstTime="500" TimeOut="100000" UIName="#DetachDatabases" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoredatabasescouldnotbere">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <DetachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoredatabasescouldnotbere">
            <dbName>ION_Data</dbName>
          </DetachDatabase>
          <DetachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoredatabasescouldnotbere">
            <dbName>ION_SystemLog</dbName>
          </DetachDatabase>
          <DetachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoredatabasescouldnotbere">
            <dbName>ION_Network</dbName>
          </DetachDatabase>
          <DetachDatabase Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoredatabasescouldnotbere">
            <dbName>ApplicationModules</dbName>
          </DetachDatabase>
        </Method>
      </Request>
      <Request Name="RemoveVirtualDirectory" EstTime="500" TimeOut="100000" UIName="#RemoveVirtualDirectories" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <nameDirectory>@globalSecondaryVirtualRoot</nameDirectory>
          </DeleteVirtualDirectory>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <nameDirectory>IONReportDataService</nameDirectory>
          </DeleteVirtualDirectory>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <nameDirectory>WebServices</nameDirectory>
          </DeleteVirtualDirectory>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <nameDirectory>ION</nameDirectory>
          </DeleteVirtualDirectory>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe</cmd>
            <args>-k W3SVC/1/ROOT/ION</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RemoveUsers" EstTime="500" TimeOut="100000" UIName="#RemoveWindowsUsers" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <RemoveWindowsUser Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreuserscouldnotberemove">
            <userName>@globalBrandEEMUser</userName>
          </RemoveWindowsUser>
          <RemoveWindowsUser Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreuserscouldnotberemove">
            <userName>@Custom_DBMaintenanceUsername</userName>
          </RemoveWindowsUser>
        </Method>
      </Request>
      <Request Name="RemoveSQLUsers" EstTime="500" TimeOut="100000" UIName="#RemoveSQLServerUsers" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <SetConnectionString Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <connectionString>@globalConnectionString</connectionString>
          </SetConnectionString>
          <RemoveSQLJobsByUser Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>ION</userName>
          </RemoveSQLJobsByUser>
          <RemoveUser Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>@globalBrandSQLUser</userName>
            <dbName>msdb</dbName>
          </RemoveUser>
          <RemoveLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>Report</userName>
          </RemoveLogin>
          <RemoveLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>ION</userName>
          </RemoveLogin>
          <RemoveLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>@globalBrandEEMUser</userName>
          </RemoveLogin>
          <RemoveLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>ionedsd</userName>
          </RemoveLogin>
          <RemoveLogin Library="DatabaseUtilities" Class="Installer.InstallTools.ConfigureSQL" UIMessageOnFail="#Oneormoresqluserscouldnotberem">
            <userName>@globalMachineName/@\@Custom_DBMaintenanceUsername/@</userName>
          </RemoveLogin>
        </Method>
      </Request>
      <Request Name="UnRegisterAssmeblies" EstTime="500" TimeOut="1200000" UIName="#UnregisterAssemblies" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- regasm -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ClrInitializer.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSecurity.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Internationalization.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PMLSplashScreen.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Security.UserManager.Data.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NetworkRouterTaskScheduler.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NOMRegistrar.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SystemLog.COM.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONSNG.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\AboutBox.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ModbusExtensions.Dialogue.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.DataSelector.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SqlPackageWrapper.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\CommServer.Licensing.dll" /unregister</args>
          </RunExecutable>
          <!-- regtlibv12-->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\IModbusExtensions.tlb"</args>
          </RunExecutable>
          <!-- regsvr32 -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLMonikers.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLDiagnostics.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\ProductInfo.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLServiceRegistration.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\IONOptionsManager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\tdbg7.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\pegasysentitymanager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\MSDEUpgrader.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLNOMCfg.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLSProvider.dll"</args>
          </RunExecutable>
          <!-- Added for pegasys ism removal -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\IONDiagnostics.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\PMLCommServer.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\PMLLogServer.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\PMLNOMEntity.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe </cmd>
            <args>-u "@globalProgramFileFolder/@\system\bin\WebReachdatacollector.tlb"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLCrypto.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\MDILogic.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\NetmanMessage.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLCallReceiver.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLClientMessenger.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLSecurity.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLTreeScanner.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLTreeTranslator.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\WebReach.LocateSubscriptions.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\pmltimezone.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\viewman.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\viewman_.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\IONDiagnosticsProvider.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSNG.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PortConnectionTask.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Configuration.AutoConfig.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Interop.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.PMLWebReach.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\LAMInterop.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcExport.DA.Server.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcImport.DA.Translator.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\WebReach.ManagedSubscriptionStore.dll" /unregister</args>
          </RunExecutable>
          <!-- End - Added for pegasys ism removal -->
        </Method>
      </Request>
      <Request Name="UnRegisterAssmeblies" EstTime="500" TimeOut="1200000" UIName="#UnregisterAssemblies" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>DbServer</globalSetupType>
        </ConditionTrue>
        <Method>
          <!-- regasm -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\ClrInitializer.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSecurity.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Internationalization.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PMLSplashScreen.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Security.UserManager.Data.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\NOMRegistrar.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SystemLog.COM.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONSNG.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\AboutBox.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\SqlPackageWrapper.dll" /unregister</args>
          </RunExecutable>
          <!-- regsvr32 -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLMonikers.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLDiagnostics.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\ProductInfo.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLServiceRegistration.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\IONOptionsManager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\tdbg7.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\pegasysentitymanager.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\MSDEUpgrader.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLNOMCfg.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLSProvider.dll"</args>
          </RunExecutable>
          <!-- Added for pegasys ism removal -->
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLCrypto.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\MDILogic.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\NetmanMessage.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLCallReceiver.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLClientMessenger.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLSecurity.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLTreeScanner.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\PMLTreeTranslator.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\WebReach.LocateSubscriptions.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\pmltimezone.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\viewman.ocx"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\viewman_.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\system32\regsvr32.exe</cmd>
            <args>/s /u "@globalProgramFileFolder/@\system\bin\IONDiagnosticsProvider.dll"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.IONSNG.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\PortConnectionTask.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Configuration.AutoConfig.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\IONServices.Interop.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\Interop.PMLWebReach.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\LAMInterop.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcExport.DA.Server.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\OpcImport.DA.Translator.dll" /unregister</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreassembliescouldnotber">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe</cmd>
            <args>"@globalProgramFileFolder/@\system\bin\WebReach.ManagedSubscriptionStore.dll" /unregister</args>
          </RunExecutable>
          <!-- End - Added for pegasys ism removal -->
        </Method>
      </Request>
      <Request Name="RemoveNetShare" EstTime="500" TimeOut="1200000" UIName="#RemoveNetworkShare" ProgressBar="Animation" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Thenetworksharecouldnotberemov">
            <cmd>net.exe</cmd>
            <args>SHARE ION-Ent /DELETE</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RemoveExtraFiles" EstTime="500" TimeOut="1200000" UIName="#RemovingFiles" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteFileIfExists Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <fileName>%windir%\PJIAGIKJ.ocx</fileName>
          </DeleteFileIfExists>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>@globalProgramFileFolder/@\system\ReportDataService</destPath>
          </DeleteFolder>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>@globalProgramFileFolder/@\Applications\ApplicationFramework</destPath>
          </DeleteFolder>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>@globalProgramFileFolder/@\Applications\HierarchyManager</destPath>
          </DeleteFolder>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Web Applications.url</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Web Applications.url</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Designer.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Management Console.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@\Vista.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Designer.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Management Console.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Reporter.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <RemoveWindowsShortcut Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <shortcutLocation>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@\Vista.lnk</shortcutLocation>
          </RemoveWindowsShortcut>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>%PUBLIC%\Desktop\@globalBrandProductRangeAndFormalName/@</destPath>
          </DeleteFolder>
          <DeleteFolder Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#CouldNotcleanupallsysfiles">
            <destPath>%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\@globalBrandCompanyName/@\@globalBrandProductRangeAndFormalName/@</destPath>
          </DeleteFolder>
        </Method>
      </Request>
      <Request Name="CleanRegistry" EstTime="500" TimeOut="100000" UIName="#RemovingRegistryEntries" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>@globalBrandRegistryRoot/@</regPath>
          </DeleteRegPath>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SOFTWARE\@globalBrandCompanyName/@\StruxureWarePowerMonitoring</regPath>
          </DeleteRegPath>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SOFTWARE\@globalBrandCompanyName/@\Installer</regPath>
          </DeleteRegPath>
          <RemoveFromRegKey Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#CouldnotupdatePATHvalue">
            <regKey>SYSTEM\CurrentControlSet\Control\Session Manager\Environment</regKey>
            <regName>Path</regName>
            <removeValue>;@globalProgramFileFolder/@\system\bin</removeValue>
          </RemoveFromRegKey>
          <!--<DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\IONEnterprise</regPath>
          </DeleteRegPath>-->
        </Method>
      </Request>
      <!-- ****************************************************************************************************-->
      <!-- Inclusion of Dashboards Uninstall  *****************************************************************-->
      <!-- ****************************************************************************************************-->
      <Request Name="CleanRegistry" EstTime="500" TimeOut="100000" UIName="#RemovingRegistryEntries" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|DbServer|WebApp|AMSingleServer|AMDatabase|AMWebApp|AMDSD</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SOFTWARE\@globalBrandCompanyName/@\PowerStruxure Reporting</regPath>
          </DeleteRegPath>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PowerStruxureReporting</regPath>
          </DeleteRegPath>
        </Method>
      </Request>
      <Request Name="RemoveCertificates" EstTime="0" TimeOut="0" UIName="#RemovingCertificates" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|PrimaryOnly|DbServer|WebApp|Client|ReportingClient|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormorecertificatescouldnotb">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-delstore "MY" "IPKey"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormorecertificatescouldnotb">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-delstore "MY" "RPKey"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormorecertificatescouldnotb">
            <cmd>%systemroot%\system32\CertUtil.exe</cmd>
            <args>-delstore "ROOT" "IPKey"</args>
          </RunExecutable>
        </Method>
      </Request>
      <Request Name="RemoveServices" EstTime="500" TimeOut="600000" UIName="#RemovingServices" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>CoreServicesHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>DataServicesHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <StopServiceWithTimeout Library="NTServiceUtility" Class="Installer.InstallTools.NTServiceController">
            <serviceName>ProviderEngineHost</serviceName>
            <timeout>30</timeout>
          </StopServiceWithTimeout>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotberem">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe</cmd>
            <args>/ServiceHostInstanceName=CoreServicesHost /u "@globalProgramFileFolder/@\Applications\bin\Framework.ServiceHost.exe"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotberem">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe</cmd>
            <args>/ServiceHostInstanceName=DataServicesHost /u "@globalProgramFileFolder/@\Applications\bin\Framework.ServiceHost.exe"</args>
          </RunExecutable>
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreservicescouldnotberem">
            <cmd>%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe</cmd>
            <args>/ServiceHostInstanceName=ProviderEngineHost /u "@globalProgramFileFolder/@\Applications\bin\Framework.ServiceHost.exe"</args>
          </RunExecutable>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SYSTEM\CurrentControlSet\Services\CoreServicesHost</regPath>
          </DeleteRegPath>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SYSTEM\CurrentControlSet\Services\DataServicesHost</regPath>
          </DeleteRegPath>
          <DeleteRegPath Library="RegistrySetup" Class="Installer.InstallTools.SetupRegistry" UIMessageOnFail="#Oneormoreregistryentriescouldn">
            <regPath>SYSTEM\CurrentControlSet\Services\ProviderEngineHost</regPath>
          </DeleteRegPath>
        </Method>
      </Request>
      <Request Name="RemoveVirtualDirectory" EstTime="500" TimeOut="100000" UIName="#RemoveVirtualDirectories" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager" UIMessageOnFail="#Oneormorevirtualdirectoriescou">
            <nameDirectory>@globalVirtualRoot</nameDirectory>
          </DeleteVirtualDirectory>
          <DeleteVirtualDirectory Library="IISManager" Class="Installer.InstallTools.IISManager">
            <nameDirectory>HierarchyManager</nameDirectory>
          </DeleteVirtualDirectory>
        </Method>
      </Request>
      <Request Name="RemoveUsers" EstTime="500" TimeOut="100000" UIName="#RemoveWindowsUsers" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <RemoveWindowsUser Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreuserscouldnotberemove">
            <userName>AMUser</userName>
          </RemoveWindowsUser>
          <RemoveWindowsUser Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoreuserscouldnotberemove">
            <userName>AMAdministrator</userName>
          </RemoveWindowsUser>
        </Method>
      </Request>
      <Request Name="RemoveGroups" EstTime="500" TimeOut="100000" UIName="#RemoveWindowsGroups" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|AMSingleServer|AMWebApp</globalSetupType>
        </ConditionTrue>
        <Method>
          <DeleteWindowsGroup Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoregroupscouldnotberemov">
            <groupName>ApplicationModulesUsers</groupName>
          </DeleteWindowsGroup>
          <DeleteWindowsGroup Library="WinUtilities" Class="Installer.InstallTools.WinUtilities" UIMessageOnFail="#Oneormoregroupscouldnotberemov">
            <groupName>ApplicationModulesAdministrators</groupName>
          </DeleteWindowsGroup>
        </Method>
      </Request>
      <Request Name="RemoveIONDatabaseScheduledTasks" EstTime="1000" TimeOut="100000" UIName="#RemoveMaintenanceJob" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalIsSQLExpress>true</globalIsSQLExpress>
        </ConditionTrue>
        <Method>
          <!-- DB Backup tasks -->
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - BACKUP - Job</taskName>
          </DeleteScheduledTask>
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Network] - BACKUP - Job</taskName>
          </DeleteScheduledTask>
          <!-- DB Maintenance tasks -->
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - MAINTENANCE - Job</taskName>
          </DeleteScheduledTask>
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Network] - MAINTENANCE - Job</taskName>
          </DeleteScheduledTask>
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_SystemLog] - MAINTENANCE - Job</taskName>
          </DeleteScheduledTask>
          <!-- DB Size Notification task -->
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_Data] - SIZE NOTIFICATION - Job</taskName>
          </DeleteScheduledTask>
          <!-- DB Size Notification task -->
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ION_SystemLog] - TRIM - Job</taskName>
          </DeleteScheduledTask>
        </Method>
      </Request>
      <Request Name="RemoveApplicationsDatabaseScheduledTasks" EstTime="1000" TimeOut="100000" UIName="#RemoveApplicationsMaintenanceJobs" ProgressBar="Progress" ActionOnFail="Continue">
        <Method>
          <!-- DB Backup tasks -->
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - BACKUP - Job</taskName>
          </DeleteScheduledTask>
          <!-- DB Maintenance tasks -->
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - MAINTENANCE - Job</taskName>
          </DeleteScheduledTask>
          <!-- DB Trim tasks -->
          <DeleteScheduledTask Library="WindowsScheduledTasks" Class="Installer.InstallTools.ScheduledTask">
            <taskName>[ApplicationModules] - TRIM - Job</taskName>
          </DeleteScheduledTask>
        </Method>
      </Request>
      <!-- ****************************************************************************************************-->
      <!-- End inclusion of Uninstall *************************************************************************-->
      <!-- ****************************************************************************************************-->
      <!--<Request Name="RemoveDeviceDrivers" EstTime="500" TimeOut="6000000" UIName="#RemoveDeviceDrivers" ProgressBar="Progress" ActionOnFail="Continue">
        <ConditionTrue>
          <globalSetupType>Primary|WebApp|Secondary</globalSetupType>
        </ConditionTrue>
        <Method>
          -->
      <!-- Acti9 Smartlink -->
      <!--
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{931606AA-60E5-441A-BBB8-0908DC225269} /qn</args>
          </RunExecutable>
          -->
      <!-- EM4800 Series -->
      <!--
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{21B4EDD7-B045-4C5C-B1F8-68B7F132EC5F} /qn</args>
          </RunExecutable>
          -->
      <!-- EM 1200 Series -->
      <!--
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{28D62CD9-2D7C-4EC6-8E14-2CD14D687444} /qn</args>
          </RunExecutable>
          -->
      <!-- iEM3100-3200 Series -->
      <!--
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{40F6E522-8DDC-44F7-AB4C-9B8178CCB93F} /qn</args>
          </RunExecutable>
          -->
      <!-- PM3200 -->
      <!--
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{6CFEE4BD-A2C1-48F0-8CD3-1E47CD5D9F6B} /qn</args>
          </RunExecutable>
          -->
      <!-- EM3500 Series -->
      <!--
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{375EA782-2A06-4D9F-B7D1-271777802A33} /qn</args>
          </RunExecutable>
          -->
      <!-- EM7000 Series -->
      <!--
          <RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{6A9837C7-1812-42DF-8719-B981226C2A8A} /qn</args>
          </RunExecutable>
          -->
      <!-- PM5350 Busway Series -->
      <!--
          -->
      <!--<RunExecutable Library="WinUtilities" Class="Installer.InstallTools.WinUtilities">
            <cmd>msiexec.exe</cmd>
            <args>/x{EEB0AB7C-2EA0-4CA1-B572-983DA87BD54F} /qn</args>
          </RunExecutable>-->
      <!--
        </Method>
      </Request>-->
    </BrokerRequest>
  </BrokerRequests>
</InstBroker>
