【发布时间】:2010-08-11 21:28:06
【问题描述】:
应该是琐碎的事情现在已经占用了我一个小时的时间! >__
我想以 xml 路径作为参数启动一个可执行文件。 (我已将该程序所在的目录添加到我的系统路径中。)看起来很简单。我的第一种方法是使用静态 Process.Start() 方法:
Process.Start(@"MyExecutable.exe", "C:\\My Doc\\SomeDirectory\\MyXMLPath.xml");
这个过程确实开始了,但在半秒后它就死了。所以,我喜欢 ooookaay,也许可执行文件不喜欢我给它的论点?只是为了咯咯笑,我创建了一个可执行文件的快捷方式,并将 xml 文件路径添加为它的参数之一。程序按预期启动和运行。不知道为什么会这样,我决定在命令行上测试一下我的运气:
C:\MyExecutable.exe "C:\My Docs\SomeDirectory\MyXMLPath.xml"
这样开始也没问题。
现在,此时我开始抓住稻草并决定创建 Process 类的实例:
进程 proc = new Process(); proc.StartInfo.FileName = @"MyExecutable.exe"; proc.StartInfo.Arguments = "C:\\My Docs\\SomeDirectory\\MyXMLPath.xml"; proc.Start();不用说这根本没有帮助。 >.
如此沮丧,我决定测试我的运气评论一行:
//proc.StartInfo.Arguments = "C:\\My Docs\\SomeDirectory\\MyXMLPath.xml";
然后这个过程开始了。没有必要的论据,但它开始了。所以,问题是,当我尝试通过 Process 类启动它时,为什么程序不接受我给它的路径?要是它在程序终止时给我留下了一条消息就好了。 :(
有什么想法吗?非常感激!
【问题讨论】:
-
在黑暗中随机拍摄:在命令行中,您指定了
C:\MyExecutable.exe,但在您的代码中,您只指定了MyExecutable.exe。您是否尝试过在代码中指定C:\MyExecutable.exe?根据当前目录,可能会选择不同的 .exe。 -
@Chris - 啊,不,因为可执行文件不位于 C 的根目录中......我不应该选择不同的可执行文件。我可能有一个非常非常渺茫的机会。但我不认为这会有所作为。 :(