环境变量通过System.Environment.GetEnvironmentVariable("VAR_NAME")
获取
在 bash 中使用 export VAR_NAME=123
不起作用(以上命令返回 null)。将 System.EnvironmentVariableTarget 设置为用户、机器或进程都不起作用。
将带有 export VAR_NAME=123
的 shell 脚本放入/etc/profile.d/settings.sh 需要重新启动,这是 Not Acceptable 。我一直无法找到在不重新启动的情况下加载更改的方法。使用 source/etc/profile.d/settings.sh
不起作用。我也没有测试它在重启后是否真的有效,因为我不会重启 :)
通过 MonoDevelop 导出变量是可行的,但不是一个选项,因为设置是跨项目使用的。我无法为解决方案设置环境变量。
一定有更好的方法。有什么线索吗?
编辑 1:在 bash 中运行应用程序时让它工作。现在我无法在 MonoDevelop 中调试任何东西,所以我想找到一种方法让 MonoDevelop 包含所需的变量,而无需在每个项目中都设置它们。
Edit2:通过转到 Run -> Run With -> Custom Parameters
并添加环境变量,在 MonoDevelop 中非常接近。尽管在调试时它们仍然没有应用。
Edit3:使用 Run With -> Custom Parameters 是一个死胡同,因为它不支持在 MonoDevelop 中运行多个项目。如果有多个启动项目,它根本不允许添加任何自定义参数。
最佳答案
从 bash 执行 MonoDevelop。这样环境变量在调试时可用。
关于.net - MonoDevelop调试时读取环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36916787/