Path

MAKEMSI quickly and reliably creates MSI files in a non-programmatic way\" Title="->" width="10" height="9" hspace="4" vspace="1" ALIGN='middle' STYLE="border: 1px Red;">Source Code" Title="->" width="10" height="9" hspace="4" vspace="1" ALIGN='middle' STYLE="border: 1px Red;">Commands" Title="->" width="10" height="9" hspace="4" vspace="1" ALIGN='middle' STYLE="border: 1px Red;">Path

The "Path" Command

This command updates "path like" environment variables. To do this it populates the MSI "Environment" table .

The macro takes these parameters:

User Logoff or Reboot Required?

To pick up the changed environment variables the user may need to logoff and logon (user environment variables) or reboot (system environment variables). This is because the variables are per-process and will not normally change until the process is restarted at which time it typically inherits the parent processes environment.

Windows Installer will broadcast the "WM_SETTINGCHANGE" message (lParam set to the string "Environment") to all top level windows so that these processes have the opportunity to update their per-process environment details if they so wish. It is a known Windows "feature" that the SCM (services) doesn't handle this message.

As a diagnostic aid, the "PROCESS EXPLORER" tool can show you the "process hierarchy" as well as each processes environment.

EXAMPLES
<$Component "Environment" Directory_="<$AnyDir>" LM="Y">
 ;--- Test environment macro (create in install, remove in uninstall) -----
 <$Environment Name="EnvVarLit" VALUE="Value4EnvVar1"> ;;Assign literal
 <$Environment Name="EnvVarExp" *VALUE="WeekDayName(WeekDay(date()))"> ;;Assign result of VBSCRIPT expression
<$/Component>
<$Component "SomeExistingComponentJustAsAnExampleOfHowToDoIt">
 ;--- Test PATH macro -----------------------------------------------------
 <$Path "C:\Some\Path"> ;;Normally update "PATH"
 <$Path "[TARGETDIR]"> ;;Refer to MSI directory/property
 <$Path ".REX" NAME="PATHEXT"> ;;Update another type of "path like" environment
<$/Component>

WARNING

Have a look at the following bugs:

  1. PATH Completely Cleared!
  2. PATH Update Flakey in WIN95/98

Note that the value will end with a slash, if this causes problems with your program then I'd suggest you fix your program, however if its someone else's then see the "Trailing Slash Removal" section for an example that uses a custom action or perhaps a better way is to use "." (for "current" directory), for example:

<$Path "[INSTALLDIR]." System="N">




MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday May 28 2022 at 3:11pm
Visit MAKEMSI's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.

AltStyle によって変換されたページ (->オリジナル) /