Process.Start()的已知问题?

时间:2017-11-29 14:32:08

标签: c# process

我有一个奇怪的问题。如果我用

执行外部程序
Process.Start(Path);

程序中出现一些错误(界面(按钮等)不应该完全刷新)。

如果我直接启动程序(使用与Process.Start()中指定的完全相同的.exe),则不会出现错误。

该程序不需要任何启动参数或其他任何内容。

有什么想法吗?这是以这种方式执行程序时的已知问题吗?

1 个答案:

答案 0 :(得分:3)

当应用程序中缺少UI元素时,它通常是一个使用自定义UI框架的应用程序,该框架作为DLL与可执行文件一起部署。

如果双击可执行文件,“工作目录”将设置为您启动它的目录。

当您致电Process.Start(string path)时,工作目录仍设置为您的应用程序的目录(或您或运行时设置的任何其他目录)。

在这种情况下,应用程序找不到构成该UI框架的DLL,并且UI保持为空或以其他方式损坏。

请参阅.NET Process.Start default directory?,为您从代码开始的应用程序提供工作目录。