EnvironmentVariables в ProcessStartInfo.EnvironmentVariables (тип StringDictionary
) всегда устанавливаются в нижний регистр, когда я что-то вставляю в него. Например:C# System.Diagnostics.ProcessStartInfo EnvironmentVariables не зависит от регистра?
proc.StartInfo.EnvironmentVariables.Clear();
proc.StartInfo.EnvironmentVariables.Add("REDIRECT_STATUS", "");
// [snipped more variables being added here]
proc.Start();
В процессе там сейчас является redirect_status
, а не REDIRECT_STATUS
, как я хотел. Это вызывает проблемы.
Я уже где-то читал, что вы можете обойти эту проблему, создав пакетный файл, однако это не применимо в моем случае, поскольку это предназначено для использования в качестве CGI (этот код можно было бы назвать 10 раз второй.)
Есть ли способ получить EnvironmentVariables
, чтобы не быть чувствительным к регистру, и просто позвольте мне пойти на все шапки?
Это приложение Windows, однако, применение Я называю CGI PHP, где, если вы запрашиваете $ _SERVER ['SOMETHING'], он учитывает регистр. – Codecat
У вас есть контроль над PHP-скриптом? Если это так, замените $ _SERVER ['FOO'] на getenv ('FOO'), если комментарии в http://php.net/manual/en/function.getenv.php верны. –
Я хочу, чтобы все виды скриптов работали, поэтому в верхних шапках нужны переменные окружения. Спасибо за подсказку getenv. Не знал этого. – Codecat