Итак, я работаю над утилитой для создания GUI для клонирования, обновления и, в конечном итоге, компиляции проекта GitHub. Я уже создал сценарий, который делает то же самое через терминал MSYS2 напрямую, но у меня возникают проблемы с тем, чтобы те же самые команды работали в C# GUI. Мне посчастливилось вызвать тот же сценарий из GUI одним нажатием кнопки, но я хотел бы иметь возможность упаковать все как отдельный исполняемый файл, а не связывать его со сценарием, хотя я сделаю это, если это к чему все сводится в итоге.
Вот что у меня есть (с удалением некоторых операторов if для управления дополнительными аргументами):
ProcessStartInfo compileStart = new ProcessStartInfo();
compileStart.FileName = this.textMSYS2.Text + "\\usr\\bin\\mintty.exe";
this.outputText.Text += "Configuring MSYS2 process...\n";
compileStart.Arguments += "-h always /bin/env MSYSTEM=MINGW64 /bin/bash -l ";
compile.StartInfo = compileStart;
compile.Start();
compile.WaitForExit();
В его нынешнем виде он не работает, если я добавьте вызовы pacman
или make
или даже простой вызов dir
. Возвращаемые ошибки выглядят следующим образом:
/usr/bin/make: /usr/bin/make: cannot execute binary file
/bin/env: Exit 126.
Однако, если я вызываю свой ./install.sh
скрипт, скрипт выполняется без проблем, и окно MINGW64 даже остается открытым после того, как это сделано. Любое понимание того, как я могу заставить это работать, не упаковывая вместе с ним скрипт, было бы признательно.