从c#启动调试模式应用程序

时间:2015-01-02 05:43:49

标签: c# c++ debugging process launch

我目前正在开发一个c ++项目,我制作了一个C#wpf启动器。

这些可行:

  • Visual Studio调试器
  • 在调试文件夹中运行.exe
  • 使用窗口的命令行在调试文件夹中运行.exe

但是,从c#代码启动调试文件夹中的file.exe会导致c ++程序在启动时崩溃。 我甚至尝试在c#中运行相同的命令行,通过键入它来工作,这会导致崩溃。

将调试器附加到c ++进程后,崩溃的原因似乎是缺少资产(一些着色器代码)。但是,资源文件夹位于调试目录中,正如我所说,程序通过单击运行。

我在c#中尝试过:

  • 在命令行中运行命令以简单地启动exe
  • 使用ProcessStartInfo

是什么导致这种情况?

1 个答案:

答案 0 :(得分:1)

如Vikas所述,需要设置工作目录,或者似乎Windows不允许进程访问文件。

以下代码对我有用:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(this.PathToExeTextBox.Text);
startInfo.FileName = this.PathToExeTextBox.Text;
Process.Start(startInfo);