mono-io-layer-error (2) 是什么意思,在 Unity 中启动一个进程?

问题描述

Context 是 Unity,试图启动一个新的外部进程。代码如下所示:

var startinfo = new processstartinfo {
  FileName = RootPath + Executable,WorkingDirectory = RootPath,UseShellExecute = true,WindowStyle = Visible ? ProcessWindowStyle.normal : ProcessWindowStyle.Hidden,};
try {
  _process = Process.Start(startinfo);
  return true;
} catch (Exception ex) {
  _global.Fail($"Unable to start engine {startinfo.FileName}.\n{ex.ToString()}");
  return false;
}

这在编辑器中工作正常,但 Build&Run 失败并出现以下错误

System.ComponentModel.Win32Exception (0x80004005): mono-io-layer-error (2)
  at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.processstartinfo startInfo) [0x00102] in <3df7f9ca50404bbc8bd4e7b954e70293>:0 
  at System.Diagnostics.Process.Start () [0x00032] in <3df7f9ca50404bbc8bd4e7b954e70293>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at System.Diagnostics.Process.Start (System.Diagnostics.processstartinfo startInfo) [0x0001b] in <3df7f9ca50404bbc8bd4e7b954e70293>:0 
  at ServerManager.StartServer () [0x00049] in <5143145dfb5b4093ac2347595a160b5c>:0 

什么意思?我在网上找不到任何类似的东西。

我的猜测是构建版本可能不支持功能,但我无法确定或在哪里寻找替代方法。归根结底,我真正需要的是一种从构建的 Unity 项目启动外部进程的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)