我正在尝试向Path环境variables添加一个值,但似乎无法使其工作。 我已经经历了几个类似的问题,我很确定我有完全相同的代码,但仍然不会添加该variables, 或者我看不到它。 我已经检查了pipe理员和本地用户帐户的更改。 我在运行(debugging)应用程序的过程中和之后都检查过。 我也完全closuresVS2013,并检查。
这是我正在使用的代码
string path = @"C:UsersbonoDocumentsVisual Studio 2013Projects3D-ScannerAddEnviromentToPathbinDebugAddEnviromentToPath.exe"; ProcessStartInfo process_start_info = new ProcessStartInfo(); process_start_info.FileName = path; process_start_info.Verb = "runas"; process_start_info.WindowStyle = ProcessWindowStyle.Normal; process_start_info.UseShellExecute = true; process_start_info.Arguments = PATH_TO_PCL; Process.Start(process_start_info); //Process that handles the adding of the value
AddEnviromentToPath程序:
class Program { static void Main(string[] args) { //Just to make sure we're adding both AddToEnvironmentPath(args[0],EnvironmentVariableTarget.User); AddToEnvironmentPath(args[0],EnvironmentVariableTarget.Machine); } static void AddToEnvironmentPath(string pathComponent,EnvironmentVariableTarget target) { string targetPath = System.Environment.GetEnvironmentVariable("Path",target) ?? string.Empty; if (!string.IsNullOrEmpty(targetPath) && !targetPath.EndsWith(";")) { targetPath = targetPath + ';'; } targetPath = targetPath + pathComponent; Environment.SetEnvironmentVariable("Path",targetPath,target); } }
请注意,我正在运行VS2013和作为标准用户的主要应用程序。 当AddEnviromentToPath程序运行时,我得到一个pipe理员validation面板。 我使用pipe理员帐户在这里login。
将目录添加到Windowspathvariables是否会影响性能?
环境variables强制.NET应用程序运行为32位
有没有更好的方法来创build这个游戏循环? (C ++ /视窗)
Java安装程序。 如何设置Windows系统path?
在使用DBD :: mysql时需要关于perl错误的帮助
编辑:
其他人似乎使用基本相同的代码工作:
如何获取和设置C#中的环境variables?
环境没有在使用c#的窗口中设置。 我哪里错了?
为什么在使用ENABLEDELAYEDEXPANSION时这个variables不会在for循环中设置?
在环境中设置一个Bash函数
不能使用任何环境variables
如何从文件中有效地读取环境参数,与exec一起使用
如何使用batch file从系统configuration中删除环境variables
假设Environment.SetEnvironmentVariable在后台调用Win32的SetEnvironmentVariable函数,这个注释可能是适用的:
设置当前进程的指定环境变量的内容
…
此函数对系统环境变量或其他进程的环境变量没有影响。
如果要更改全局环境变量并让现有进程注意到它,则需要:
将其保存到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment下的注册表中
使用WM_SETTINGCHANGE消息通知现有的更改过程。
有关更多信息,请参阅MSDN 环境变量文档。
ProcessStartInfo来拯救!
你需要检查这个文件:
https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.environmentvariables%28v=vs.110%29.aspx
解决您的担忧的关键文字:
虽然不能设置EnvironmentVariables属性,但可以修改属性返回的StringDictionary。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。