protected void AddPrependPathToEnvironment() { // Validate args. Trace.Entering(); ArgUtil.NotNull(ExecutionContext.PrependPath, nameof(ExecutionContext.PrependPath)); if (ExecutionContext.PrependPath.Count == 0) { return; } // Prepend path. string prepend = string.Join(Path.PathSeparator.ToString(), ExecutionContext.PrependPath.Reverse <string>()); var containerStepHost = StepHost as ContainerStepHost; if (containerStepHost != null) { containerStepHost.PrependPath = prepend; } else { string taskEnvPATH; Environment.TryGetValue(Constants.PathVariable, out taskEnvPATH); string originalPath = RuntimeVariables.Get(Constants.PathVariable) ?? // Prefer a job variable. taskEnvPATH ?? // Then a task-environment variable. System.Environment.GetEnvironmentVariable(Constants.PathVariable) ?? // Then an environment variable. string.Empty; string newPath = PathUtil.PrependPath(prepend, originalPath); AddEnvironmentVariable(Constants.PathVariable, newPath); } }