11cb0ef41Sopenharmony_ci<?xml version="1.0" encoding="UTF-8"?>
21cb0ef41Sopenharmony_ci<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
31cb0ef41Sopenharmony_ci     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
41cb0ef41Sopenharmony_ci
51cb0ef41Sopenharmony_ci  <?define ProductName = "Node.js" ?>
61cb0ef41Sopenharmony_ci  <?define ProductDescription = "Node.js" ?>
71cb0ef41Sopenharmony_ci  <?define ProductAuthor = "Node.js Foundation" ?>
81cb0ef41Sopenharmony_ci
91cb0ef41Sopenharmony_ci  <?define RegistryKeyPath = "SOFTWARE\Node.js" ?>
101cb0ef41Sopenharmony_ci
111cb0ef41Sopenharmony_ci  <?define RepoDir="$(var.ProjectDir)..\..\..\" ?>
121cb0ef41Sopenharmony_ci  <?define SourceDir="$(var.RepoDir)\$(var.Configuration)\" ?>
131cb0ef41Sopenharmony_ci
141cb0ef41Sopenharmony_ci  <Product Id="*"
151cb0ef41Sopenharmony_ci           Name="$(var.ProductName)"
161cb0ef41Sopenharmony_ci           Language="!(loc.LocaleId)"
171cb0ef41Sopenharmony_ci           Version="$(var.ProductVersion)"
181cb0ef41Sopenharmony_ci           Manufacturer="$(var.ProductAuthor)"
191cb0ef41Sopenharmony_ci           UpgradeCode="47c07a3a-42ef-4213-a85d-8f5a59077c28">
201cb0ef41Sopenharmony_ci
211cb0ef41Sopenharmony_ci    <Package Languages="!(loc.LocaleId)"
221cb0ef41Sopenharmony_ci             InstallerVersion="200"
231cb0ef41Sopenharmony_ci             Compressed="yes"
241cb0ef41Sopenharmony_ci             InstallScope="perMachine"/>
251cb0ef41Sopenharmony_ci
261cb0ef41Sopenharmony_ci    <Condition Message="This application is only supported on Windows 8.1, Windows Server 2012 R2, or higher.">
271cb0ef41Sopenharmony_ci      <![CDATA[Installed OR (VersionNT >= 603) OR (VersionNT >= 602 AND MsiNTProductType <> 1)]]>
281cb0ef41Sopenharmony_ci    </Condition>
291cb0ef41Sopenharmony_ci
301cb0ef41Sopenharmony_ci    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes"/>
311cb0ef41Sopenharmony_ci
321cb0ef41Sopenharmony_ci    <MajorUpgrade AllowSameVersionUpgrades="yes"
331cb0ef41Sopenharmony_ci                  DowngradeErrorMessage="!(loc.MajorUpgrade_DowngradeErrorMessage)"/>
341cb0ef41Sopenharmony_ci
351cb0ef41Sopenharmony_ci    <Upgrade Id="1d60944c-b9ce-4a71-a7c0-0384eb884baa">
361cb0ef41Sopenharmony_ci      <UpgradeVersion Maximum="1.0.0"
371cb0ef41Sopenharmony_ci                      IncludeMaximum="no"
381cb0ef41Sopenharmony_ci                      Property="NODE_0X_DETECTED" />
391cb0ef41Sopenharmony_ci      <UpgradeVersion Minimum="1.0.0"
401cb0ef41Sopenharmony_ci                      IncludeMinimum="yes"
411cb0ef41Sopenharmony_ci                      Property="EARLY_IO_DETECTED" />
421cb0ef41Sopenharmony_ci    </Upgrade>
431cb0ef41Sopenharmony_ci
441cb0ef41Sopenharmony_ci    <Icon Id="NodeIcon" SourceFile="$(var.RepoDir)\src\res\node.ico"/>
451cb0ef41Sopenharmony_ci    <Property Id="ARPPRODUCTICON" Value="NodeIcon"/>
461cb0ef41Sopenharmony_ci    <Property Id="ApplicationFolderName" Value="nodejs"/>
471cb0ef41Sopenharmony_ci    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>
481cb0ef41Sopenharmony_ci
491cb0ef41Sopenharmony_ci    <!-- PropertyRef of the account users for setting InstallDir permission explicitly -->
501cb0ef41Sopenharmony_ci    <PropertyRef Id="WIX_ACCOUNT_LOCALSYSTEM" />
511cb0ef41Sopenharmony_ci    <PropertyRef Id="WIX_ACCOUNT_USERS" />
521cb0ef41Sopenharmony_ci    <PropertyRef Id="WIX_ACCOUNT_ADMINISTRATORS" />
531cb0ef41Sopenharmony_ci
541cb0ef41Sopenharmony_ci    <Property Id="INSTALLDIR" Secure="yes">
551cb0ef41Sopenharmony_ci      <RegistrySearch Id="InstallPathRegistry"
561cb0ef41Sopenharmony_ci                      Type="raw"
571cb0ef41Sopenharmony_ci                      Root="HKLM"
581cb0ef41Sopenharmony_ci                      Key="$(var.RegistryKeyPath)"
591cb0ef41Sopenharmony_ci                      Name="InstallPath"/>
601cb0ef41Sopenharmony_ci      <!-- Also need to search under HKCU to support upgrading from old
611cb0ef41Sopenharmony_ci           versions. If we wanted to disable backward compatibility, this
621cb0ef41Sopenharmony_ci           second search could be deleted. -->
631cb0ef41Sopenharmony_ci      <RegistrySearch Id="InstallPathRegistryCU"
641cb0ef41Sopenharmony_ci                      Type="raw"
651cb0ef41Sopenharmony_ci                      Root="HKCU"
661cb0ef41Sopenharmony_ci                      Key="$(var.RegistryKeyPath)"
671cb0ef41Sopenharmony_ci                      Name="InstallPath"/>
681cb0ef41Sopenharmony_ci    </Property>
691cb0ef41Sopenharmony_ci
701cb0ef41Sopenharmony_ci    <Feature Id="NodeRuntime"
711cb0ef41Sopenharmony_ci             Level="1"
721cb0ef41Sopenharmony_ci             Title="!(loc.NodeRuntime_Title)"
731cb0ef41Sopenharmony_ci             Description="!(loc.NodeRuntime_Description)"
741cb0ef41Sopenharmony_ci             Absent="disallow">
751cb0ef41Sopenharmony_ci      <ComponentRef Id="NodeExecutable"/>
761cb0ef41Sopenharmony_ci      <ComponentRef Id="NodeRegistryEntries"/>
771cb0ef41Sopenharmony_ci      <ComponentRef Id="NodeVarsScript"/>
781cb0ef41Sopenharmony_ci      <ComponentRef Id="NodeStartMenu"/>
791cb0ef41Sopenharmony_ci      <ComponentRef Id="InstallToolsBat" />
801cb0ef41Sopenharmony_ci      <ComponentRef Id="SetInstallDirPermission" />
811cb0ef41Sopenharmony_ci      <ComponentGroupRef Id="Product.Generated"/>
821cb0ef41Sopenharmony_ci
831cb0ef41Sopenharmony_ci      <Feature Id="NodeEtwSupport"
841cb0ef41Sopenharmony_ci               Level="1"
851cb0ef41Sopenharmony_ci               Title="!(loc.NodeEtwSupport_Title)"
861cb0ef41Sopenharmony_ci               Description="!(loc.NodeEtwSupport_Description)">
871cb0ef41Sopenharmony_ci        <ComponentRef Id="NodeEtwSupport"/>
881cb0ef41Sopenharmony_ci      </Feature>
891cb0ef41Sopenharmony_ci    </Feature>
901cb0ef41Sopenharmony_ci
911cb0ef41Sopenharmony_ci    <Feature Id="corepack"
921cb0ef41Sopenharmony_ci             Level="1"
931cb0ef41Sopenharmony_ci             Title="!(loc.corepack_Title)"
941cb0ef41Sopenharmony_ci             Description="!(loc.corepack_Description)">
951cb0ef41Sopenharmony_ci      <ComponentRef Id="CorepackCmdScript"/>
961cb0ef41Sopenharmony_ci      <ComponentRef Id="CorepackBashScript"/>
971cb0ef41Sopenharmony_ci      <ComponentGroupRef Id="CorepackSourceFiles"/>
981cb0ef41Sopenharmony_ci    </Feature>
991cb0ef41Sopenharmony_ci
1001cb0ef41Sopenharmony_ci    <Feature Id="npm"
1011cb0ef41Sopenharmony_ci             Level="1"
1021cb0ef41Sopenharmony_ci             Title="!(loc.npm_Title)"
1031cb0ef41Sopenharmony_ci             Description="!(loc.npm_Description)">
1041cb0ef41Sopenharmony_ci      <ComponentRef Id="NpmCmdScript"/>
1051cb0ef41Sopenharmony_ci      <ComponentRef Id="NpmBashScript"/>
1061cb0ef41Sopenharmony_ci      <ComponentRef Id="NpxCmdScript"/>
1071cb0ef41Sopenharmony_ci      <ComponentRef Id="NpxBashScript"/>
1081cb0ef41Sopenharmony_ci      <ComponentRef Id="NpmConfigurationFile"/>
1091cb0ef41Sopenharmony_ci      <ComponentRef Id="SetInstallDirPermission" />
1101cb0ef41Sopenharmony_ci      <ComponentGroupRef Id="NpmSourceFiles"/>
1111cb0ef41Sopenharmony_ci    </Feature>
1121cb0ef41Sopenharmony_ci
1131cb0ef41Sopenharmony_ci    <Feature Level="1"
1141cb0ef41Sopenharmony_ci             Id="DocumentationShortcuts"
1151cb0ef41Sopenharmony_ci             Title="!(loc.DocumentationShortcuts_Title)"
1161cb0ef41Sopenharmony_ci             Description="!(loc.DocumentationShortcuts_Description)">
1171cb0ef41Sopenharmony_ci      <ComponentRef Id="DocumentationShortcuts"/>
1181cb0ef41Sopenharmony_ci    </Feature>
1191cb0ef41Sopenharmony_ci
1201cb0ef41Sopenharmony_ci    <Feature Id="EnvironmentPath"
1211cb0ef41Sopenharmony_ci             Level="1"
1221cb0ef41Sopenharmony_ci             Title="!(loc.EnvironmentPath_Title)"
1231cb0ef41Sopenharmony_ci             Description="!(loc.EnvironmentPath_Description)">
1241cb0ef41Sopenharmony_ci      <Feature Id="EnvironmentPathNode"
1251cb0ef41Sopenharmony_ci               Level="1"
1261cb0ef41Sopenharmony_ci               Title="!(loc.EnvironmentPathNode_Title)"
1271cb0ef41Sopenharmony_ci               Description="!(loc.EnvironmentPathNode_Description)">
1281cb0ef41Sopenharmony_ci        <ComponentRef Id="EnvironmentPathNode"/>
1291cb0ef41Sopenharmony_ci      </Feature>
1301cb0ef41Sopenharmony_ci
1311cb0ef41Sopenharmony_ci      <Feature Id="EnvironmentPathNpmModules"
1321cb0ef41Sopenharmony_ci               Level="1"
1331cb0ef41Sopenharmony_ci               Title="!(loc.EnvironmentPathNpmModules_Title)"
1341cb0ef41Sopenharmony_ci               Description="!(loc.EnvironmentPathNpmModules_Description)">
1351cb0ef41Sopenharmony_ci        <ComponentRef Id="EnvironmentPathNpmModules"/>
1361cb0ef41Sopenharmony_ci      </Feature>
1371cb0ef41Sopenharmony_ci    </Feature>
1381cb0ef41Sopenharmony_ci
1391cb0ef41Sopenharmony_ci    <Directory Id="TARGETDIR" Name="SourceDir">
1401cb0ef41Sopenharmony_ci      <Directory Id="ProgramMenuFolder">
1411cb0ef41Sopenharmony_ci        <Directory Id="ApplicationProgramsFolder" Name="Node.js"/>
1421cb0ef41Sopenharmony_ci      </Directory>
1431cb0ef41Sopenharmony_ci
1441cb0ef41Sopenharmony_ci      <Directory Id="$(var.ProgramFilesFolderId)">
1451cb0ef41Sopenharmony_ci        <Directory Id="INSTALLDIR" Name="nodejs">
1461cb0ef41Sopenharmony_ci        </Directory>
1471cb0ef41Sopenharmony_ci      </Directory>
1481cb0ef41Sopenharmony_ci    </Directory>
1491cb0ef41Sopenharmony_ci
1501cb0ef41Sopenharmony_ci    <DirectoryRef Id="INSTALLDIR">
1511cb0ef41Sopenharmony_ci      <Component Id="NodeExecutable">
1521cb0ef41Sopenharmony_ci        <File Id="node.exe" KeyPath="yes" Source="$(var.SourceDir)\node.exe"/>
1531cb0ef41Sopenharmony_ci      </Component>
1541cb0ef41Sopenharmony_ci
1551cb0ef41Sopenharmony_ci      <Component Id="NodeRegistryEntries">
1561cb0ef41Sopenharmony_ci        <RegistryValue Root="HKLM"
1571cb0ef41Sopenharmony_ci                       Key="$(var.RegistryKeyPath)"
1581cb0ef41Sopenharmony_ci                       Name="InstallPath"
1591cb0ef41Sopenharmony_ci                       Type="string"
1601cb0ef41Sopenharmony_ci                       Value="[INSTALLDIR]"
1611cb0ef41Sopenharmony_ci                       KeyPath="yes"/>
1621cb0ef41Sopenharmony_ci        <RegistryValue Root="HKLM"
1631cb0ef41Sopenharmony_ci                       Key="$(var.RegistryKeyPath)"
1641cb0ef41Sopenharmony_ci                       Name="Version"
1651cb0ef41Sopenharmony_ci                       Type="string"
1661cb0ef41Sopenharmony_ci                       Value="$(var.ProductVersion)"/>
1671cb0ef41Sopenharmony_ci      </Component>
1681cb0ef41Sopenharmony_ci
1691cb0ef41Sopenharmony_ci      <Component Id="NodeVarsScript">
1701cb0ef41Sopenharmony_ci        <File Id="nodevars.bat" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\nodevars.bat"/>
1711cb0ef41Sopenharmony_ci      </Component>
1721cb0ef41Sopenharmony_ci
1731cb0ef41Sopenharmony_ci      <Component Id="InstallToolsBat">
1741cb0ef41Sopenharmony_ci        <File Id="InstallToolsBat" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\install_tools\install_tools.bat"/>
1751cb0ef41Sopenharmony_ci      </Component>
1761cb0ef41Sopenharmony_ci
1771cb0ef41Sopenharmony_ci      <?if $(var.NoETW) != 1 ?>
1781cb0ef41Sopenharmony_ci      <Component Id="NodeEtwSupport">
1791cb0ef41Sopenharmony_ci        <File Id="node_etw_provider.man" Source="$(var.RepoDir)\src\res\node_etw_provider.man">
1801cb0ef41Sopenharmony_ci          <util:EventManifest MessageFile="[INSTALLDIR]node.exe" ResourceFile="[INSTALLDIR]node.exe"/>
1811cb0ef41Sopenharmony_ci        </File>
1821cb0ef41Sopenharmony_ci      </Component>
1831cb0ef41Sopenharmony_ci      <?endif?>
1841cb0ef41Sopenharmony_ci    </DirectoryRef>
1851cb0ef41Sopenharmony_ci
1861cb0ef41Sopenharmony_ci    <DirectoryRef Id="INSTALLDIR">
1871cb0ef41Sopenharmony_ci      <!-- Create component for setting the install directory permission explicitly -->
1881cb0ef41Sopenharmony_ci      <Component Id="SetInstallDirPermission" Guid="{EFFC4F74-183A-4237-BBD7-0CAD2B950053}">
1891cb0ef41Sopenharmony_ci        <CreateFolder>
1901cb0ef41Sopenharmony_ci          <Permission User="[WIX_ACCOUNT_USERS]" GenericRead="yes" Traverse="yes" GenericExecute="yes" Synchronize="yes"
1911cb0ef41Sopenharmony_ci                      GenericWrite="no" WriteAttributes="no" WriteExtendedAttributes="no"/>
1921cb0ef41Sopenharmony_ci          <Permission User="[AUTHENTICATED_USERS]" GenericRead="yes" Traverse="yes" GenericExecute="yes" Synchronize="yes"
1931cb0ef41Sopenharmony_ci                      GenericWrite="no" WriteAttributes="no" WriteExtendedAttributes="no"/>
1941cb0ef41Sopenharmony_ci          <Permission User="[WIX_ACCOUNT_ADMINISTRATORS]" GenericAll="yes"/>
1951cb0ef41Sopenharmony_ci          <Permission User="[WIX_ACCOUNT_LOCALSYSTEM]" GenericAll="yes"/>
1961cb0ef41Sopenharmony_ci        </CreateFolder>
1971cb0ef41Sopenharmony_ci      </Component>
1981cb0ef41Sopenharmony_ci    </DirectoryRef>
1991cb0ef41Sopenharmony_ci
2001cb0ef41Sopenharmony_ci    <DirectoryRef Id="ApplicationProgramsFolder">
2011cb0ef41Sopenharmony_ci      <Component Id="NodeStartMenu">
2021cb0ef41Sopenharmony_ci        <!-- RegistryValue needed because every Component must have a KeyPath.
2031cb0ef41Sopenharmony_ci             Because of ICE43, the Root must be HKCU. -->
2041cb0ef41Sopenharmony_ci        <RegistryValue Root="HKCU"
2051cb0ef41Sopenharmony_ci                       Key="$(var.RegistryKeyPath)\Components"
2061cb0ef41Sopenharmony_ci                       Name="NodeStartMenuShortcuts"
2071cb0ef41Sopenharmony_ci                       Type="integer"
2081cb0ef41Sopenharmony_ci                       Value="1"
2091cb0ef41Sopenharmony_ci                       KeyPath="yes"/>
2101cb0ef41Sopenharmony_ci        <Shortcut Id="NodeVarsScriptShortcut"
2111cb0ef41Sopenharmony_ci                  Name="Node.js command prompt"
2121cb0ef41Sopenharmony_ci                  Target="[%ComSpec]"
2131cb0ef41Sopenharmony_ci                  Arguments='/k "[INSTALLDIR]nodevars.bat"'
2141cb0ef41Sopenharmony_ci                  Show="normal"
2151cb0ef41Sopenharmony_ci                  WorkingDirectory="INSTALLDIR"/>
2161cb0ef41Sopenharmony_ci        <Shortcut Id="InstallToolsShortcut"
2171cb0ef41Sopenharmony_ci                  Name="Install Additional Tools for Node.js"
2181cb0ef41Sopenharmony_ci                  Target="[%ComSpec]"
2191cb0ef41Sopenharmony_ci                  Arguments='/d /c "[INSTALLDIR]install_tools.bat"'
2201cb0ef41Sopenharmony_ci                  Show="normal"
2211cb0ef41Sopenharmony_ci                  WorkingDirectory="INSTALLDIR"/>
2221cb0ef41Sopenharmony_ci        <Shortcut Id="NodeExecutableShortcut"
2231cb0ef41Sopenharmony_ci                  Name="Node.js"
2241cb0ef41Sopenharmony_ci                  Target="[INSTALLDIR]node.exe"
2251cb0ef41Sopenharmony_ci                  WorkingDirectory="INSTALLDIR"/>
2261cb0ef41Sopenharmony_ci        <Shortcut Id="UninstallProduct"
2271cb0ef41Sopenharmony_ci                  Name="Uninstall Node.js"
2281cb0ef41Sopenharmony_ci                  Target="[SystemFolder]msiexec.exe"
2291cb0ef41Sopenharmony_ci                  Arguments="/x [ProductCode]"/>
2301cb0ef41Sopenharmony_ci        <RemoveFolder Id="RemoveApplicationProgramsFolder"
2311cb0ef41Sopenharmony_ci                      On="uninstall"/>
2321cb0ef41Sopenharmony_ci      </Component>
2331cb0ef41Sopenharmony_ci    </DirectoryRef>
2341cb0ef41Sopenharmony_ci
2351cb0ef41Sopenharmony_ci    <DirectoryRef Id="INSTALLDIR">
2361cb0ef41Sopenharmony_ci      <Component Id="CorepackCmdScript">
2371cb0ef41Sopenharmony_ci        <File Id="corepack.cmd" KeyPath="yes" Source="$(var.CorepackSourceDir)\shims\nodewin\corepack.cmd"/>
2381cb0ef41Sopenharmony_ci      </Component>
2391cb0ef41Sopenharmony_ci
2401cb0ef41Sopenharmony_ci      <Component Id="CorepackBashScript">
2411cb0ef41Sopenharmony_ci        <File Id="corepack.sh" KeyPath="yes" Source="$(var.CorepackSourceDir)\shims\nodewin\corepack"/>
2421cb0ef41Sopenharmony_ci      </Component>
2431cb0ef41Sopenharmony_ci
2441cb0ef41Sopenharmony_ci      <Component Id="NpmCmdScript">
2451cb0ef41Sopenharmony_ci        <File Id="npm.cmd" KeyPath="yes" Source="$(var.NpmSourceDir)\bin\npm.cmd"/>
2461cb0ef41Sopenharmony_ci      </Component>
2471cb0ef41Sopenharmony_ci
2481cb0ef41Sopenharmony_ci      <Component Id="NpmBashScript">
2491cb0ef41Sopenharmony_ci        <File Id="npm.sh" KeyPath="yes" Source="$(var.NpmSourceDir)\bin\npm"/>
2501cb0ef41Sopenharmony_ci      </Component>
2511cb0ef41Sopenharmony_ci
2521cb0ef41Sopenharmony_ci      <Component Id="NpxCmdScript">
2531cb0ef41Sopenharmony_ci        <File Id="npx.cmd" KeyPath="yes" Source="$(var.NpmSourceDir)\bin\npx.cmd"/>
2541cb0ef41Sopenharmony_ci      </Component>
2551cb0ef41Sopenharmony_ci
2561cb0ef41Sopenharmony_ci      <Component Id="NpxBashScript">
2571cb0ef41Sopenharmony_ci        <File Id="npx.sh" KeyPath="yes" Source="$(var.NpmSourceDir)\bin\npx"/>
2581cb0ef41Sopenharmony_ci      </Component>
2591cb0ef41Sopenharmony_ci
2601cb0ef41Sopenharmony_ci      <Directory Id="NodeModulesFolder" Name="node_modules">
2611cb0ef41Sopenharmony_ci        <Directory Id="NpmFolder" Name="npm">
2621cb0ef41Sopenharmony_ci          <Component Id="NpmConfigurationFile">
2631cb0ef41Sopenharmony_ci            <File Id="npm.rc" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\npm\npmrc"/>
2641cb0ef41Sopenharmony_ci          </Component>
2651cb0ef41Sopenharmony_ci        </Directory>
2661cb0ef41Sopenharmony_ci      </Directory>
2671cb0ef41Sopenharmony_ci    </DirectoryRef>
2681cb0ef41Sopenharmony_ci
2691cb0ef41Sopenharmony_ci    <DirectoryRef Id="ApplicationProgramsFolder">
2701cb0ef41Sopenharmony_ci      <Component Id="DocumentationShortcuts">
2711cb0ef41Sopenharmony_ci        <RegistryValue Root="HKCU"
2721cb0ef41Sopenharmony_ci                       Key="$(var.RegistryKeyPath)\Components"
2731cb0ef41Sopenharmony_ci                       Name="DocumentationShortcuts"
2741cb0ef41Sopenharmony_ci                       Type="integer"
2751cb0ef41Sopenharmony_ci                       Value="1"
2761cb0ef41Sopenharmony_ci                       KeyPath="yes"/>
2771cb0ef41Sopenharmony_ci        <util:InternetShortcut Id="WebsiteShortcut"
2781cb0ef41Sopenharmony_ci                               Name="Node.js website"
2791cb0ef41Sopenharmony_ci                               Target="https://nodejs.org/"
2801cb0ef41Sopenharmony_ci                               Type="url"/>
2811cb0ef41Sopenharmony_ci        <util:InternetShortcut Id="DocsShortcut"
2821cb0ef41Sopenharmony_ci                               Name="Node.js documentation"
2831cb0ef41Sopenharmony_ci                               Target="https://nodejs.org/download/$(var.DistTypeDir)/v$(var.FullVersion)/docs/api/"
2841cb0ef41Sopenharmony_ci                               Type="url"/>
2851cb0ef41Sopenharmony_ci      </Component>
2861cb0ef41Sopenharmony_ci    </DirectoryRef>
2871cb0ef41Sopenharmony_ci
2881cb0ef41Sopenharmony_ci    <DirectoryRef Id="INSTALLDIR">
2891cb0ef41Sopenharmony_ci      <Component Id="EnvironmentPathNode">
2901cb0ef41Sopenharmony_ci        <RegistryValue Root="HKLM"
2911cb0ef41Sopenharmony_ci                       Key="$(var.RegistryKeyPath)\Components"
2921cb0ef41Sopenharmony_ci                       Name="EnvironmentPathNode"
2931cb0ef41Sopenharmony_ci                       Type="integer"
2941cb0ef41Sopenharmony_ci                       Value="1"
2951cb0ef41Sopenharmony_ci                       KeyPath="yes"/>
2961cb0ef41Sopenharmony_ci        <Environment Id="EnvironmentPathNode"
2971cb0ef41Sopenharmony_ci                     Action="set"
2981cb0ef41Sopenharmony_ci                     Name="PATH"
2991cb0ef41Sopenharmony_ci                     Part="last"
3001cb0ef41Sopenharmony_ci                     System="yes"
3011cb0ef41Sopenharmony_ci                     Value="[INSTALLDIR]"/>
3021cb0ef41Sopenharmony_ci      </Component>
3031cb0ef41Sopenharmony_ci
3041cb0ef41Sopenharmony_ci      <Component Id="EnvironmentPathNpmModules">
3051cb0ef41Sopenharmony_ci        <RegistryValue Root="HKCU"
3061cb0ef41Sopenharmony_ci                       Key="$(var.RegistryKeyPath)\Components"
3071cb0ef41Sopenharmony_ci                       Name="EnvironmentPathNpmModules"
3081cb0ef41Sopenharmony_ci                       Type="integer"
3091cb0ef41Sopenharmony_ci                       Value="1"
3101cb0ef41Sopenharmony_ci                       KeyPath="yes"/>
3111cb0ef41Sopenharmony_ci        <Environment Id="EnvironmentPathNpmModules"
3121cb0ef41Sopenharmony_ci                     Action="set"
3131cb0ef41Sopenharmony_ci                     Name="PATH"
3141cb0ef41Sopenharmony_ci                     Part="last"
3151cb0ef41Sopenharmony_ci                     System="no"
3161cb0ef41Sopenharmony_ci                     Value="[AppDataFolder]npm"/>
3171cb0ef41Sopenharmony_ci      </Component>
3181cb0ef41Sopenharmony_ci    </DirectoryRef>
3191cb0ef41Sopenharmony_ci
3201cb0ef41Sopenharmony_ci    <Binary Id='CustomActionsDLL'
3211cb0ef41Sopenharmony_ci            SourceFile='$(var.custom_actions.TargetDir)$(var.custom_actions.TargetName).dll' />
3221cb0ef41Sopenharmony_ci
3231cb0ef41Sopenharmony_ci    <CustomAction Id="SetInstallScope"
3241cb0ef41Sopenharmony_ci                  BinaryKey="CustomActionsDLL"
3251cb0ef41Sopenharmony_ci                  DllEntry="SetInstallScope"
3261cb0ef41Sopenharmony_ci                  Execute="immediate"
3271cb0ef41Sopenharmony_ci                  Return="check" />
3281cb0ef41Sopenharmony_ci
3291cb0ef41Sopenharmony_ci    <CustomAction Id="BroadcastEnvironmentUpdate"
3301cb0ef41Sopenharmony_ci                  BinaryKey="CustomActionsDLL"
3311cb0ef41Sopenharmony_ci                  DllEntry="BroadcastEnvironmentUpdate"
3321cb0ef41Sopenharmony_ci                  Execute="immediate"
3331cb0ef41Sopenharmony_ci                  Return="check" />
3341cb0ef41Sopenharmony_ci
3351cb0ef41Sopenharmony_ci    <CustomAction Id="GetLocalizedUserNames"
3361cb0ef41Sopenharmony_ci                  BinaryKey="CustomActionsDLL"
3371cb0ef41Sopenharmony_ci                  DllEntry="GetLocalizedUserNames"
3381cb0ef41Sopenharmony_ci                  Execute="immediate"
3391cb0ef41Sopenharmony_ci                  Return="check" />
3401cb0ef41Sopenharmony_ci
3411cb0ef41Sopenharmony_ci    <Property Id="WixShellExecTarget" Value="[#InstallToolsBat]" />
3421cb0ef41Sopenharmony_ci    <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" />
3431cb0ef41Sopenharmony_ci
3441cb0ef41Sopenharmony_ci    <InstallUISequence>
3451cb0ef41Sopenharmony_ci      <Custom Action='SetInstallScope' Before='FindRelatedProducts'/>
3461cb0ef41Sopenharmony_ci    </InstallUISequence>
3471cb0ef41Sopenharmony_ci
3481cb0ef41Sopenharmony_ci    <InstallExecuteSequence>
3491cb0ef41Sopenharmony_ci      <Custom Action='SetInstallScope' Before='FindRelatedProducts'/>
3501cb0ef41Sopenharmony_ci      <Custom Action='GetLocalizedUserNames' After='SetInstallScope'/>
3511cb0ef41Sopenharmony_ci      <Custom Action='BroadcastEnvironmentUpdate' After='InstallFinalize'/>
3521cb0ef41Sopenharmony_ci    </InstallExecuteSequence>
3531cb0ef41Sopenharmony_ci
3541cb0ef41Sopenharmony_ci    <UI Id="NodeInstallUI">
3551cb0ef41Sopenharmony_ci      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8"/>
3561cb0ef41Sopenharmony_ci      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12"/>
3571cb0ef41Sopenharmony_ci      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes"/>
3581cb0ef41Sopenharmony_ci
3591cb0ef41Sopenharmony_ci      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal"/>
3601cb0ef41Sopenharmony_ci      <Property Id="WixUI_Mode" Value="FeatureTree"/>
3611cb0ef41Sopenharmony_ci
3621cb0ef41Sopenharmony_ci      <DialogRef Id="ErrorDlg"/>
3631cb0ef41Sopenharmony_ci      <DialogRef Id="FatalError"/>
3641cb0ef41Sopenharmony_ci      <DialogRef Id="FilesInUse"/>
3651cb0ef41Sopenharmony_ci      <DialogRef Id="MsiRMFilesInUse"/>
3661cb0ef41Sopenharmony_ci      <DialogRef Id="PrepareDlg"/>
3671cb0ef41Sopenharmony_ci      <DialogRef Id="ProgressDlg"/>
3681cb0ef41Sopenharmony_ci      <DialogRef Id="ResumeDlg"/>
3691cb0ef41Sopenharmony_ci      <DialogRef Id="UserExit"/>
3701cb0ef41Sopenharmony_ci      <DialogRef Id="WelcomeDlg"/>
3711cb0ef41Sopenharmony_ci      <DialogRef Id="LicenseAgreementDlg"/>
3721cb0ef41Sopenharmony_ci      <DialogRef Id="InstallDirDlg"/>
3731cb0ef41Sopenharmony_ci      <DialogRef Id="BrowseDlg"/>
3741cb0ef41Sopenharmony_ci      <DialogRef Id="InvalidDirDlg"/>
3751cb0ef41Sopenharmony_ci      <Dialog Id="NativeToolsDlg" Width="370" Height="270" Title="!(loc.NativeToolsDlg_Title)">
3761cb0ef41Sopenharmony_ci        <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.NativeToolsDlgBannerBitmap)" />
3771cb0ef41Sopenharmony_ci        <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.NativeToolsDlgTitle)" />
3781cb0ef41Sopenharmony_ci        <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.NativeToolsDlgDescription)" />
3791cb0ef41Sopenharmony_ci        <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
3801cb0ef41Sopenharmony_ci
3811cb0ef41Sopenharmony_ci        <Control Id="Intro" Type="Text" X="20" Y="65" Width="330" Height="30" NoPrefix="yes" Text="!(loc.NativeToolsDlgIntro)" />
3821cb0ef41Sopenharmony_ci        <Control Id="InstallCheckbox" Type="CheckBox" X="20" Y="105" Width="330" Height="30" Property="NATIVETOOLSCHECKBOX" CheckBoxValue="1" Text="!(loc.NativeToolsDlgInstallCheckbox)" />
3831cb0ef41Sopenharmony_ci        <Control Id="ManualDetails" Type="Hyperlink" X="20" Y="140" Width="330" Height="30" Text="!(loc.NativeToolsDlgManualDetails)" />
3841cb0ef41Sopenharmony_ci
3851cb0ef41Sopenharmony_ci        <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
3861cb0ef41Sopenharmony_ci        <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
3871cb0ef41Sopenharmony_ci        <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
3881cb0ef41Sopenharmony_ci        <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
3891cb0ef41Sopenharmony_ci          <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
3901cb0ef41Sopenharmony_ci        </Control>
3911cb0ef41Sopenharmony_ci      </Dialog>
3921cb0ef41Sopenharmony_ci
3931cb0ef41Sopenharmony_ci      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>
3941cb0ef41Sopenharmony_ci      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
3951cb0ef41Sopenharmony_ci      <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
3961cb0ef41Sopenharmony_ci      <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">LicenseAccepted = "1"</Publish>
3971cb0ef41Sopenharmony_ci      <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
3981cb0ef41Sopenharmony_ci      <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg" Order="20">1</Publish>
3991cb0ef41Sopenharmony_ci      <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="10">1</Publish>
4001cb0ef41Sopenharmony_ci      <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="10">1</Publish>
4011cb0ef41Sopenharmony_ci      <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="20">1</Publish>
4021cb0ef41Sopenharmony_ci      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">NOT Installed OR WixUI_InstallMode = "Change"</Publish>
4031cb0ef41Sopenharmony_ci      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
4041cb0ef41Sopenharmony_ci      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">Installed AND PATCH</Publish>
4051cb0ef41Sopenharmony_ci      <Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
4061cb0ef41Sopenharmony_ci      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
4071cb0ef41Sopenharmony_ci      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
4081cb0ef41Sopenharmony_ci      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
4091cb0ef41Sopenharmony_ci      <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
4101cb0ef41Sopenharmony_ci      <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">Installed</Publish>
4111cb0ef41Sopenharmony_ci      <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="2">NOT Installed</Publish>
4121cb0ef41Sopenharmony_ci      <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="NativeToolsDlg">1</Publish>
4131cb0ef41Sopenharmony_ci      <Publish Dialog="NativeToolsDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg">1</Publish>
4141cb0ef41Sopenharmony_ci      <Publish Dialog="NativeToolsDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
4151cb0ef41Sopenharmony_ci      <Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">NATIVETOOLSCHECKBOX = 1</Publish>
4161cb0ef41Sopenharmony_ci      <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
4171cb0ef41Sopenharmony_ci
4181cb0ef41Sopenharmony_ci      <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="!(loc.WIXUI_EXITDIALOGOPTIONALTEXT)"/>
4191cb0ef41Sopenharmony_ci    </UI>
4201cb0ef41Sopenharmony_ci
4211cb0ef41Sopenharmony_ci    <UIRef Id="WixUI_Common"/>
4221cb0ef41Sopenharmony_ci    <UIRef Id="WixUI_ErrorProgressText"/>
4231cb0ef41Sopenharmony_ci    <WixVariable Id="WixUIBannerBmp" Value="$(var.RepoDir)\doc\thin-white-stripe.jpg"/>
4241cb0ef41Sopenharmony_ci    <WixVariable Id="WixUIDialogBmp" Value="$(var.RepoDir)\doc\full-white-stripe.jpg"/>
4251cb0ef41Sopenharmony_ci    <WixVariable Id="WixUILicenseRtf" Value="$(var.SourceDir)\LICENSE.rtf"/>
4261cb0ef41Sopenharmony_ci  </Product>
4271cb0ef41Sopenharmony_ci
4281cb0ef41Sopenharmony_ci</Wix>
429