【发布时间】:2020-08-11 04:01:31
【问题描述】:
我正在尝试从另一个 .Net Core 3.1 进程启动一个子 .Net Core 3.1 进程以进行匿名管道通信。
_childProcess = new Process();
_childProcess.StartInfo.FileName = "childProcess.exe";
_childProcess.StartInfo.UseShellExecute = false;
_childProcess.StartInfo.WorkingDirectory = AppDomain.CurrentDomain?.BaseDirectory;
_childProcess.Start();
导致调试时报错:“To run this application, you must install .Net Core”。
子进程项目是父项目的依赖项,这导致childProcess.exe 被复制到父进程的输出目录中。 childProcess.exe可以直接启动没有问题。从代码启动时,找不到运行时。
【问题讨论】:
-
你是怎么直接开始
childProcess.exe的? -
假设您没有使用单个文件,而是使用已安装的 .NET 核心,您可以改为启动
dotnet并将childProcess作为参数传递 -
@PavelAnikhouski 我直接从 FileExplorer 启动它,也可以从命令行运行。
-
@CamiloTerevinto 我尝试启动 dotnet 但找不到命令,我可以从命令行运行 dotnet
-
感谢大家的宝贵时间。这是我的一个愚蠢的错误。我没有复制 runtimeconfig 文件。通常这会导致“hostpolicy.dll”错误,但我的项目类型(父级为 WorkerService,子级为 AvaloniaUI)导致错误表现不同。我应该考虑项目类型。
标签: c# .net-core asp.net-core-3.1