Description
On windows, environment variables are meant to be case insensitive. Because of this, in some contexts, a special IDictionary class that lowercases all the keys is used to manipulate environment variables, specifically ProcessStartInfo.EnvironmentVariables.
The upshot of this, for me, is that when running under the profiler I have, all the environment variables get lowercased, and my logging configuration is broken, because TEMP is now temp, and log4net is treating the environment variables in a case sensitive manner, from using Environment.GetEnvironmentVariables(), which creates a normal case sensitive Hashtable object.
It seems that, on windows, the result of Environment.GetEnvironmentVariables() should be copied into a StringDictionary to get proper case insensitive behavior.