当你可以把configuration值放到registry中时,环境variables是否是过去的事情?
当你使用.NET和默认的方式来存储每个用户的设置时,它们被存储在.setting文件中
%USERPROFILE%\Local Settings\Application目录。
所以这种方式甚至登记册都是过去的事情。
免注册COM还提供了一种注册COM组件的方式,而无需使用注册表。
这就是说,环境变量提供了一个从父进程传递信息到生成进程的简单方法。 OS X,Windows和Linux都是如此。 为此,它们非常有价值
这些是完全不同的东西。 注册表只适用于windows,它是全局的(每个进程的变量不能像环境变量一样)。 而环境变量更常用于不同的语言。 您还可以使用%NAME%轻松访问环境变量,并且可以在从父进程生成进程时复制它们。
注册表更像是针对不同应用程序使用的特定于Windows的数据库。 往往不是正确的解决方案(但在某些情况下非常有用)
使用环境变量来存储应用程序的配置设置肯定是(或应该是)过去的事情。 由于全局名称空间和缺少任何标准命名方案,没有什么能够阻止两个不同的程序使用相同的环境变量,而这些变量的意义不相容。 (这不会像你想象的那样频繁发生,但确实发生了。)
在Windows上,环境变量(作为配置设置)通常仅由从Unix移植的应用程序使用。
另一方面,系统定义了Windows应用程序明确或隐含地使用的各种环境变量。 这种方法有一些优点,特别是能够在特定的命令外壳或脚本中本地更改环境变量,并且具有从该上下文运行的任何应用程序继承的修改。
而且,正如idanzalz已经指出的那样,环境变量也为父进程向子进程提供信息提供了一个有效的途径。