An example of a custom Ickydime action (see Answers above) shows how to add an environment variable by extending the PATH env variable. Below I will share how to create a new Environment.SetEnvironmentVariable variable using Environment.SetEnvironmentVariable
string environmentKey = "MY_VAR"; string pathUrl = "%ProgramFiles%\\..."; public Installer1() { InitializeComponent(); } [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)] public override void Install(IDictionary stateSaver) { base.Install(stateSaver); } [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)] public override void Commit(IDictionary savedState) { base.Commit(savedState); Environment.SetEnvironmentVariable(environmentKey, pathUrl, EnvironmentVariableTarget.Machine); } [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)] public override void Rollback(IDictionary savedState) { base.Rollback(savedState); } [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)] public override void Uninstall(IDictionary savedState) { base.Uninstall(savedState); Environment.SetEnvironmentVariable(environmentKey, null, EnvironmentVariableTarget.Machine); }
Karim Ben Yezza
source share