mirror of https://github.com/nodejs/node.git
win,msi: correct installation path registry keys
Since install is per machine only, installation path should be stored in local machine instead of current user. The registry stores HKLM in different places for 32 and 64 bit applications, so the installer will not suggest the old path when upgrading from 32 to 64 bit version. Fixes #5592 Fixes #25087 PR-URL: https://github.com/joyent/node/pull/25640 Reviewed-By: Alexis Campailla <alexis@janeasystems.com> Reviewed-By: Bert Belder <bertbelder@gmail.com>pull/2788/head
parent
8e80528453
commit
14db629497
|
@ -32,6 +32,14 @@
|
|||
|
||||
<Property Id="INSTALLDIR">
|
||||
<RegistrySearch Id="InstallPathRegistry"
|
||||
Type="raw"
|
||||
Root="HKLM"
|
||||
Key="$(var.RegistryKeyPath)"
|
||||
Name="InstallPath"/>
|
||||
<!-- Also need to search under HKCU to support upgrading from old
|
||||
versions. If we wanted to disable backward compatibility, this
|
||||
second search could be deleted. -->
|
||||
<RegistrySearch Id="InstallPathRegistryCU"
|
||||
Type="raw"
|
||||
Root="HKCU"
|
||||
Key="$(var.RegistryKeyPath)"
|
||||
|
@ -44,8 +52,9 @@
|
|||
Description="Install the core Node.js runtime (node.exe)."
|
||||
Absent="disallow">
|
||||
<ComponentRef Id="NodeExecutable"/>
|
||||
<ComponentRef Id="NodeRegistryEntries"/>
|
||||
<ComponentRef Id="NodeVarsScript"/>
|
||||
<ComponentRef Id="NodeStartMenuAndRegistryEntries"/>
|
||||
<ComponentRef Id="NodeStartMenu"/>
|
||||
<ComponentRef Id="AppData" />
|
||||
<ComponentGroupRef Id="Product.Generated"/>
|
||||
|
||||
|
@ -117,6 +126,20 @@
|
|||
<File Id="node.exe" KeyPath="yes" Source="$(var.SourceDir)\node.exe"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="NodeRegistryEntries">
|
||||
<RegistryValue Root="HKLM"
|
||||
Key="$(var.RegistryKeyPath)"
|
||||
Name="InstallPath"
|
||||
Type="string"
|
||||
Value="[INSTALLDIR]"
|
||||
KeyPath="yes"/>
|
||||
<RegistryValue Root="HKLM"
|
||||
Key="$(var.RegistryKeyPath)"
|
||||
Name="Version"
|
||||
Type="string"
|
||||
Value="$(var.ProductVersion)"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="NodeVarsScript">
|
||||
<File Id="nodevars.bat" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\nodevars.bat"/>
|
||||
</Component>
|
||||
|
@ -139,18 +162,15 @@
|
|||
</DirectoryRef>
|
||||
|
||||
<DirectoryRef Id="ApplicationProgramsFolder">
|
||||
<Component Id="NodeStartMenuAndRegistryEntries">
|
||||
<Component Id="NodeStartMenu">
|
||||
<!-- RegistryValue needed because every Component must have a KeyPath.
|
||||
Because of ICE43, the Root must be HKCU. -->
|
||||
<RegistryValue Root="HKCU"
|
||||
Key="$(var.RegistryKeyPath)"
|
||||
Name="InstallPath"
|
||||
Type="string"
|
||||
Value="[INSTALLDIR]"
|
||||
Key="$(var.RegistryKeyPath)\Components"
|
||||
Name="NodeStartMenuShortcuts"
|
||||
Type="integer"
|
||||
Value="1"
|
||||
KeyPath="yes"/>
|
||||
<RegistryValue Root="HKCU"
|
||||
Key="$(var.RegistryKeyPath)"
|
||||
Name="Version"
|
||||
Type="string"
|
||||
Value="$(var.ProductVersion)"/>
|
||||
<Shortcut Id="NodeVarsScriptShortcut"
|
||||
Name="Node.js command prompt"
|
||||
Target="[%ComSpec]"
|
||||
|
|
Loading…
Reference in New Issue