【发布时间】:2020-06-20 22:25:38
【问题描述】:
所以,我正在开发一个实用程序来创建用于克隆、更新和最终编译 GitHub 项目的 GUI。我已经创建了一个脚本,它直接通过 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 窗口甚至在完成后仍保持打开状态。任何关于我如何让它工作而不必打包脚本的见解将不胜感激。
【问题讨论】: