我正在尝试从点网络核心运行android模拟器。我用来做这段代码:
var psi = new ProcessStartInfo
{
FileName = "/Users/hexdump/Library/Android/sdk/platform-tools/adb",
Arguments = "-avd emulator-5444 &",
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
};
var proc = new Process
{
StartInfo = psi
};
success = proc.Start();
proc.WaitForExit();
这是非常标准的代码。这对于我运行的所有命令都有效,但是这个需要运行的命令"dettached“不起作用。显然,如果从控制台执行,它就可以正常运行。
作为一个副手,我删除了"WaitForExit“的调用,不知怎么的,我已经能够做我想做的事情了。但是,当我关闭dotnet时,我开始的过程也被终止了(显然)。这不是我想要的。
点网核心是否能够在后台运行脚本/可执行文件?
发布于 2020-09-18 07:23:28
&
是一个shell结构。它说你想要在后台运行应用程序。
但是,您没有运行shell (如bash
)。您正在直接运行一个程序:/Users/hexdump/Library/Android/sdk/platform-tools/adb
。
要解决这个问题,请从参数列表中删除参数&
。这使得.NET核心直接运行可执行文件。您还需要删除proc.WaitForExit()
调用,因为您的程序不希望等待模拟器退出。
名为UseShellExecute
的错误名称与在Linux/macOS/Unix中运行无关,它是Windows。它的行为更像是调用open
(macOS)或xdg-open
(Linux)。
https://stackoverflow.com/questions/63958384
复制相似问题