| <?xml version="1.0" encoding="UTF-8"?> |
| <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" |
| xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> |
| |
| <?define ProductName = "Node.js" ?> |
| <?define ProductDescription = "Node.js" ?> |
| <?define ProductAuthor = "Joyent, Inc. and other Node contributors" ?> |
| |
| <?define RegistryKeyPath = "SOFTWARE\Node.js" ?> |
| |
| <?define RepoDir="$(var.ProjectDir)..\..\..\" ?> |
| <?define SourceDir="$(var.RepoDir)\$(var.Configuration)\" ?> |
| |
| <Product Id="*" |
| Name="$(var.ProductName)" |
| Language="1033" |
| Version="$(var.ProductVersion)" |
| Manufacturer="$(var.ProductAuthor)" |
| UpgradeCode="1d60944c-b9ce-4a71-a7c0-0384eb884baa"> |
| |
| <Package InstallerVersion="200" Compressed="yes"/> |
| |
| <Media Id="1" Cabinet="media1.cab" EmbedCab="yes"/> |
| |
| <MajorUpgrade AllowSameVersionUpgrades="yes" |
| DowngradeErrorMessage="A later version of node.js is already installed. Setup will now exit."/> |
| |
| <Icon Id="NodeIcon" SourceFile="$(var.RepoDir)\src\res\node.ico"/> |
| <Property Id="ARPPRODUCTICON" Value="NodeIcon"/> |
| <Property Id="ApplicationFolderName" Value="nodejs"/> |
| <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/> |
| |
| <Property Id="INSTALLDIR"> |
| <RegistrySearch Id="InstallPathRegistry" |
| Type="raw" |
| Root="HKCU" |
| Key="$(var.RegistryKeyPath)" |
| Name="InstallPath"/> |
| </Property> |
| |
| <Feature Id="NodeRuntime" |
| Level="1" |
| Title="Node.js runtime" |
| Description="Install the core Node.js runtime (node.exe)." |
| Absent="disallow"> |
| <ComponentRef Id="NodeExecutable"/> |
| <ComponentRef Id="NodeVarsScript"/> |
| <ComponentRef Id="NodeStartMenuAndRegistryEntries"/> |
| <ComponentGroupRef Id="Product.Generated"/> |
| |
| <Feature Id="NodePerfCtrSupport" |
| Level="1" |
| Title="Performance counters" |
| Description="Installs support for Node.js-specific performance counters."> |
| <ComponentRef Id="NodePerfCtrSupport"/> |
| </Feature> |
| |
| <Feature Id="NodeEtwSupport" |
| Level="1" |
| Title="Event tracing (ETW)" |
| Description="Installs support for event tracing (ETW) events generated by Node.js."> |
| <ComponentRef Id="NodeEtwSupport"/> |
| </Feature> |
| </Feature> |
| |
| <Feature Id="npm" |
| Level="1" |
| Title="npm package manager" |
| Description="Install npm, the recommended package manager for Node.js."> |
| <ComponentRef Id="NpmCmdScript"/> |
| <ComponentRef Id="NpmBashScript"/> |
| <ComponentRef Id="NpmConfigurationFile"/> |
| <ComponentGroupRef Id="NpmSourceFiles"/> |
| </Feature> |
| |
| <Feature Level="1" |
| Id="DocumentationShortcuts" |
| Title="Online documentation shortcuts" |
| Description="Add start menu entries that link the the online documentation for Node.js $(var.ProductVersion) and the Node.js website."> |
| <ComponentRef Id="DocumentationShortcuts"/> |
| </Feature> |
| |
| <Feature Id="EnvironmentPath" |
| Level="1" |
| Title="Add to PATH" |
| Description="Add Node, npm, and modules that were globally installed by npm to the PATH environment variable."> |
| <Feature Id="EnvironmentPathNode" |
| Level="1" |
| Title="Node and npm" |
| Description="Add Node and npm (if installed) to the PATH environment variable."> |
| <ComponentRef Id="EnvironmentPathNode"/> |
| </Feature> |
| |
| <Feature Id="EnvironmentPathNpmModules" |
| Level="1" |
| Title="npm modules" |
| Description="Add modules that are installed globally by npm to the PATH environment variable. This option works for the current user only; other users need to update their PATH manually."> |
| <ComponentRef Id="EnvironmentPathNpmModules"/> |
| </Feature> |
| </Feature> |
| |
| <Directory Id="TARGETDIR" Name="SourceDir"> |
| <Directory Id="ProgramMenuFolder"> |
| <Directory Id="ApplicationProgramsFolder" Name="Node.js"/> |
| </Directory> |
| |
| <Directory Id="$(var.ProgramFilesFolderId)"> |
| <Directory Id="INSTALLDIR" Name="nodejs"> |
| </Directory> |
| </Directory> |
| </Directory> |
| |
| <DirectoryRef Id="INSTALLDIR"> |
| <Component Id="NodeExecutable"> |
| <File Id="node.exe" KeyPath="yes" Source="$(var.SourceDir)\node.exe"/> |
| </Component> |
| |
| <Component Id="NodeVarsScript"> |
| <File Id="nodevars.bat" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\nodevars.bat"/> |
| </Component> |
| |
| <?if $(var.NoPerfCtr) != 1 ?> |
| <Component Id="NodePerfCtrSupport"> |
| <File Id="node_perfctr_provider_man" Name="node_perfctr_provider.man" Source="$(var.RepoDir)\src\res\node_perfctr_provider.man"> |
| <util:PerfCounterManifest ResourceFileDirectory="[INSTALLDIR]"/> |
| </File> |
| </Component> |
| <?endif?> |
| |
| <?if $(var.NoETW) != 1 ?> |
| <Component Id="NodeEtwSupport"> |
| <File Id="node_etw_provider.man" Source="$(var.RepoDir)\src\res\node_etw_provider.man"> |
| <util:EventManifest MessageFile="[INSTALLDIR]node.exe" ResourceFile="[INSTALLDIR]node.exe"/> |
| </File> |
| </Component> |
| <?endif?> |
| </DirectoryRef> |
| |
| <DirectoryRef Id="ApplicationProgramsFolder"> |
| <Component Id="NodeStartMenuAndRegistryEntries"> |
| <RegistryValue Root="HKCU" |
| Key="$(var.RegistryKeyPath)" |
| Name="InstallPath" |
| Type="string" |
| Value="[INSTALLDIR]" |
| 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]" |
| Arguments='/k "[INSTALLDIR]nodevars.bat"' |
| Show="normal" |
| WorkingDirectory="INSTALLDIR"/> |
| <Shortcut Id="NodeExecutableShortcut" |
| Name="Node.js" |
| Target="[INSTALLDIR]node.exe" |
| WorkingDirectory="INSTALLDIR"/> |
| <Shortcut Id="UninstallProduct" |
| Name="Uninstall Node.js" |
| Target="[SystemFolder]msiexec.exe" |
| Arguments="/x [ProductCode]"/> |
| <RemoveFolder Id="RemoveApplicationProgramsFolder" |
| On="uninstall"/> |
| </Component> |
| </DirectoryRef> |
| |
| <DirectoryRef Id="INSTALLDIR"> |
| <Component Id="NpmCmdScript"> |
| <File Id="npm.cmd" KeyPath="yes" Source="$(var.NpmSourceDir)\bin\npm.cmd"/> |
| </Component> |
| |
| <Component Id="NpmBashScript"> |
| <File Id="npm.sh" KeyPath="yes" Source="$(var.NpmSourceDir)\bin\npm"/> |
| </Component> |
| |
| <Directory Id="NodeModulesFolder" Name="node_modules"> |
| <Directory Id="NpmFolder" Name="npm"> |
| <Component Id="NpmConfigurationFile"> |
| <File Id="npm.rc" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\npm\npmrc"/> |
| </Component> |
| </Directory> |
| </Directory> |
| </DirectoryRef> |
| |
| <DirectoryRef Id="ApplicationProgramsFolder"> |
| <Component Id="DocumentationShortcuts"> |
| <RegistryValue Root="HKCU" |
| Key="$(var.RegistryKeyPath)\Components" |
| Name="DocumentationShortcuts" |
| Type="integer" |
| Value="1" |
| KeyPath="yes"/> |
| <util:InternetShortcut Id="WebsiteShortcut" |
| Name="Node.js website" |
| Target="http://nodejs.org" |
| Type="url"/> |
| <util:InternetShortcut Id="DocsShortcut" |
| Name="Node.js documentation" |
| Target="http://nodejs.org/dist/v$(var.ProductVersion)/docs/api/" |
| Type="url"/> |
| </Component> |
| </DirectoryRef> |
| |
| <DirectoryRef Id="INSTALLDIR"> |
| <Component Id="EnvironmentPathNode"> |
| <RegistryValue Root="HKLM" |
| Key="$(var.RegistryKeyPath)\Components" |
| Name="EnvironmentPathNode" |
| Type="integer" |
| Value="1" |
| KeyPath="yes"/> |
| <Environment Id="EnvironmentPathNode" |
| Action="set" |
| Name="PATH" |
| Part="last" |
| System="yes" |
| Value="[INSTALLDIR]"/> |
| </Component> |
| |
| <Component Id="EnvironmentPathNpmModules"> |
| <RegistryValue Root="HKCU" |
| Key="$(var.RegistryKeyPath)\Components" |
| Name="EnvironmentPathNpmModules" |
| Type="integer" |
| Value="1" |
| KeyPath="yes"/> |
| <Environment Id="EnvironmentPathNpmModules" |
| Action="set" |
| Name="PATH" |
| Part="last" |
| System="no" |
| Value="[AppDataFolder]npm"/> |
| </Component> |
| </DirectoryRef> |
| |
| <UI Id="NodeInstallUI"> |
| <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8"/> |
| <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12"/> |
| <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes"/> |
| |
| <Property Id="DefaultUIFont" Value="WixUI_Font_Normal"/> |
| <Property Id="WixUI_Mode" Value="FeatureTree"/> |
| |
| <DialogRef Id="ErrorDlg"/> |
| <DialogRef Id="FatalError"/> |
| <DialogRef Id="FilesInUse"/> |
| <DialogRef Id="MsiRMFilesInUse"/> |
| <DialogRef Id="PrepareDlg"/> |
| <DialogRef Id="ProgressDlg"/> |
| <DialogRef Id="ResumeDlg"/> |
| <DialogRef Id="UserExit"/> |
| <DialogRef Id="WelcomeDlg"/> |
| <DialogRef Id="LicenseAgreementDlg"/> |
| <DialogRef Id="InstallDirDlg"/> |
| <DialogRef Id="BrowseDlg"/> |
| <DialogRef Id="InvalidDirDlg"/> |
| |
| <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish> |
| <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish> |
| <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish> |
| <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">LicenseAccepted = "1"</Publish> |
| <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> |
| <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg" Order="20">1</Publish> |
| <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="10">1</Publish> |
| <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="10">1</Publish> |
| <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="20">1</Publish> |
| <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish> |
| <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">NOT Installed OR WixUI_InstallMode = "Change"</Publish> |
| <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish> |
| <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">Installed AND PATCH</Publish> |
| <Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg">1</Publish> |
| <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> |
| <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> |
| <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> |
| <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish> |
| <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">Installed</Publish> |
| <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="2">NOT Installed</Publish> |
| <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> |
| |
| <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Node.js has been successfully installed."/> |
| </UI> |
| |
| <UIRef Id="WixUI_Common"/> |
| <WixVariable Id="WixUIBannerBmp" Value="..\..\..\doc\thin-white-stripe.jpg"/> |
| <WixVariable Id="WixUIDialogBmp" Value="..\..\..\doc\full-white-stripe.jpg"/> |
| <WixVariable Id="WixUILicenseRtf" Value="$(var.SourceDir)\LICENSE.rtf"/> |
| </Product> |
| |
| </Wix> |