我有一个程序可以监视进程并在它们关闭或失败时重新启动它们。它最初是一个工作项目,但我把它带回家让游戏服务器保持在我的家庭服务器上,即 Minecraft、Terraria 和最近的 Cube World。该程序是独立的,位于我的桌面上。当它启动 Cube World 的 Server.exe 时,该 exe 通常会在 Cube World 的文件夹中创建的所有文件都会在桌面上创建。我的猜测是我的程序有一个桌面工作目录,因此它启动的任何子进程(如 Server.exe)都将具有相同的工作目录。问题不仅限于 Cube World 在家中的服务器。该程序与工作中的重要后端进程保持活力。
如果我在 C# 中启动一个进程,ProcessStartInfo
如何确保启动进程的工作目录是 exe 所在的目录?该进程可能以相对路径名开始,也可能位于系统路径上,这使这变得更加困难。