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