C# 如何使用process.start启动setup.exe文件

C# 如何使用process.start启动setup.exe文件,c#,C#,我有一个最终幻想XIV游戏的免费试用发射器。现在我想通过C#中的windows服务中的process.start启动它。进程成功启动,正如我在windows任务管理器中看到的,但它没有启动安装文件。这是我试过的代码 try { var process = new Process(); var startInfo = new ProcessStartInfo { WindowStyle = ProcessWindowStyle.Normal, FileName

我有一个最终幻想XIV游戏的免费试用发射器。现在我想通过C#中的windows服务中的process.start启动它。进程成功启动,正如我在windows任务管理器中看到的,但它没有启动安装文件。这是我试过的代码

try {
   var process = new Process();
   var startInfo = new ProcessStartInfo
   {
     WindowStyle = ProcessWindowStyle.Normal,
     FileName = "cmd.exe",
     Arguments = "/C " + setupFile + " /DIR=" + installLocation,
   };

   process.StartInfo = startInfo;
   process.Start();
   process.WaitForExit();
}
catch (Exception ex)
{
  Logger.Log.Error("Error Installing game.", ex);
}
其中setupfile是ffxivsetup_ft.exe的完整路径。

请尝试以下代码:

ProcessStartInfo startInfo = new ProcessStartInfo(path);
Process.Start(startInfo);
请尝试以下代码:

ProcessStartInfo startInfo = new ProcessStartInfo(path);
Process.Start(startInfo);

我认为在控制台应用程序中这样做要好得多。从一个服务启动交互进程听起来不像是一个人想要做的事情,而且有一些系统可以阻止它工作。另外,运行应用程序不需要运行cmd.exe。我必须这样做。。上面的代码适用于另一个游戏。我认为问题出在startinfo.arguments上。我认为在控制台应用程序中这样做要好得多。从服务启动交互进程听起来不像是人们想要做的事情,而且有一些系统可以阻止它工作。另外,运行应用程序不需要运行cmd.exe。我必须这样做。。上面的代码适用于另一个游戏。我认为问题出在startinfo.arguments上,我想解释一下为什么这样做可以解决问题,问题是什么?能解释一下为什么这样做可以解决问题,问题是什么吗?