在Mono / OSX上的控制台应用程序中,我想调用mdtool来构建iOS项目。我成功拥有正确的命令行参数,并在bash shell脚本中正确运行。
现在如果我在控制台应用程序中使用Process / ProcessStartInfo类调用它,在构建之后我得到了这个并且我的程序退出。
Press any key to continue... logout
[Process completed]
这是调用mdtool的代码:
var buildArgs = string.Format("...");
var buildiOSproject = new ProcessStartInfo
{
FileName = "/Applications/MonoDevelop.app/Contents/MacOS/mdtool",
UseShellExecute = false,
Arguments = buildArgs
};
var exeProcess = Process.Start(buildiOSproject);
exeProcess.WaitForExit();
//code here never called
答案 0 :(得分:0)
我在Xamarin论坛(http://forums.xamarin.com/discussion/267/calling-mdtool-trough-processstartinfo#latest)上得到了我的答案,但这似乎与调试器有关,所以我关掉了“在我的项目选项的外部控制台“属性上运行,它现在正在运行。
答案 1 :(得分:0)
尝试将以下内容添加到StartInfo初始值设定项中。当它退出时,我遇到了与另一个工具相同的问题。虽然我已经使用过RedirectStandardOutput和RedirectStandardError,但我在修改RedirectStandardInput之后才修复它。
buildiOSproject.StartInfo = new ProcessStartInfo
{
...
RedirectStandardOutput = true,
RedirectStandardError = true,
RedirectStandardInput = true,
...
}