我有一个奇怪的问题。如果我用
执行外部程序Process.Start(Path);
程序中出现一些错误(界面(按钮等)不应该完全刷新)。
如果我直接启动程序(使用与Process.Start()
中指定的完全相同的.exe),则不会出现错误。
该程序不需要任何启动参数或其他任何内容。
有什么想法吗?这是以这种方式执行程序时的已知问题吗?
答案 0 :(得分:3)
当应用程序中缺少UI元素时,它通常是一个使用自定义UI框架的应用程序,该框架作为DLL与可执行文件一起部署。
如果双击可执行文件,“工作目录”将设置为您启动它的目录。
当您致电Process.Start(string path)
时,工作目录仍设置为您的应用程序的目录(或您或运行时设置的任何其他目录)。
在这种情况下,应用程序找不到构成该UI框架的DLL,并且UI保持为空或以其他方式损坏。
请参阅.NET Process.Start default directory?,为您从代码开始的应用程序提供工作目录。