我正在尝试将托管和本机dll加载到我的C#应用程序中。我想设置PATH环境变量,因此应用程序可以找到要加载的dll。在C ++中这很容易,但我怎样才能在C#项目中做到这一点? (顺便说一句,我使用的是VS2012,.NET,WPF)
答案 0 :(得分:4)
使用Environment.SetEnvironmentVariable()。
string currentPath = Environment.GetEnvironmentVariable("path");
Environment.SetEnvironmentVariable("path",currentPath + ";c:\path_to_libraries");
请记住,这只适用于当前流程。如果要设置持久性环境变量(用户或计算机范围),请使用Environment.SetEnvironmentVariable(string, string, EnvironmentVariableTarget)
重载。 See here用于该参考。
答案 1 :(得分:0)
小心这件事。我会明确设定目标,例如 System.Environment.SetEnvironmentVariable(“windir”,System.Environment.GetEnvironmentVariable(“SystemRoot”),EnvironmentVariableTarget.User);
当我没有设置目标时,我的Windows会话发生了非常奇怪的事情,要求我注销和登录甚至重启。因此,除非这种变化真的是在机器或过程级别,否则不要假设使用默认值
获得满意的结果