В настоящее время я работаю над проектом на C ++, и я сделал для этого C # wpf launcher.
Это будет работать:
Однако запуск файла file.exe в папке отладки из кода c # приводит к сбою программы c ++ при запуске.
Я даже попытался запустить ту же командную строку в C #, которая работала, набрав ее, и это привело к сбою.
После присоединения отладчика к процессу c ++ причиной сбоя, по-видимому, является отсутствие ресурсов (некоторый код шейдера). Однако папка assets находится в каталоге отладки, и, как я уже сказал, программа запускается нажатием на нее.
Я пытался в C #:
ProcessStartInfo
Что может вызвать это?
Как упоминалось Викасом, рабочий каталог должен быть установлен, иначе кажется, что окна не позволят процессу получить доступ к файлам.
Вот код, который работал для меня:
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);