3

我正在尝试将托管和本机 dll 加载到我的 C# 应用程序中。我想设置 PATH 环境变量,以便应用程序可以找到要加载的 dll。在 C++ 中这很容易,但我如何在 C# 项目中做到这一点?(顺便说一下,我使用的是 VS2012、.NET、WPF)

4

2 回答 2

5

使用Environment.SetEnvironmentVariable()

string currentPath = Environment.GetEnvironmentVariable("path");
Environment.SetEnvironmentVariable("path",currentPath + ";c:\path_to_libraries");

请记住,这仅适用于当前流程。如果要设置持久环境变量(用户或机器范围),请使用Environment.SetEnvironmentVariable(string, string, EnvironmentVariableTarget)重载。 请参阅此处以获取该参考。

于 2013-01-30T14:15:12.107 回答
1

小心这件事。我会明确设置目标,例如 System.Environment.SetEnvironmentVariable("windir", System.Environment.GetEnvironmentVariable("SystemRoot"), EnvironmentVariableTarget.User);

当我没有设置目标时,我的 Windows 会话发生了非常奇怪的事情,需要我注销并登录甚至重新启动。因此,除非此更改确实是在机器或过程级别,否则不要假设默认的结果令人满意

于 2013-11-13T23:55:24.750 回答