惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
B
Blog
小众软件
小众软件
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
I
InfoQ
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
H
Help Net Security
雷峰网
雷峰网
S
SegmentFault 最新的问题
V
Visual Studio Blog
爱范儿
爱范儿

博客园 - Ticky

关于WCF的“调用方未由服务进行身份验证”的另一解决方法 [转]ASP.NET页面事件:顺序与回传详解 [转]Dynamic ListView LayoutTemplate [转]多层C/S系统及其在PB中的应用 .NET强命名设置随笔 - Ticky - 博客园 [转载]SQL Server阻塞详解 Chrome发布了,感受新体验 绝对经典的十个故事 SQL SERVER的一些常用查询语句收集 链接服务器的服务器连接问题 存储过程参数的时间默认值解决方法 别把捐款与善心划等号 [转]ORM的介绍 工作随记 [转]Windows Communication Foundation介绍(四) [转]Windows Communication Foundation介绍(三) [转]Windows Communication Foundation介绍(二) [转]Windows Communication Foundation介绍(一) Microsoft OneNote 2007的体验
Process.Start触发Enviroment的改变
Ticky · 2011-11-04 · via 博客园 - Ticky

一直以为Process.Start("文件路径")后,这个文件的运行就会脱离当前程序环境,以前用了很多次,也一直这样认为。

今天刚好碰到一个程序,也是要用Process.Start的,但却不成功,很苦恼。

在通过反编译一步步跟踪程序后,锁定了“System.Environment.CurrentDirectory”。估计应该是虽然运行新程序,但Environment却没有改变,仍然保持了当前状态,我尝试着将两个程序放在同一目录下,果然成功了!

问题找到了,原因也知道,接下来就是纠正。以下就是示例:

var info=new System.Diagnostics.ProcessStartInfo("文件路径");
info.UseShellExecute = true;
info.WorkingDirectory= "文件目录";          

System.Diagnostics.Process.Start(info);

为新调用的程序创建一个新的进程实例,同时指定程序的文件目录,从而改变Environment状态。