运行 .NET 核心应用程序 (.dll) 使用 process.start 使用 cmd

Running a .NET core app (.dll) with cmd by using process.start

我是 .NET Core 2.0 的新手,所以我可能做错了,如果是这样请告诉我。

我有一个 .NET core 2.0 应用程序应该是跨平台的,因此该应用程序是一个 .dll 控制台应用程序,它在所有平台上都能正常工作。

我正在尝试实现一种看门狗,在必要的情况下,它会自我复制,并以相同的方式调用它

> $ dotnet process.dll

我的代码是:

var process = new Process
{
   StartInfo = new ProcessStartInfo
   {
       FileName = "dotnet",
       Arguments = "path\release\PublishOutput\proces.dll"
       UseShellExecute = true,
       RedirectStandardOutput = false,
       RedirectStandardError = false,
       CreateNoWindow = true
     }

 };

 process.Start();

问题是,当进程运行这段代码时,出现以下异常

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=sometoken' or one of its dependencies. The system cannot find the file specified.

我在代码中找不到任何关于破坏 dotnet 的提及,我不知道这是否可能?

可能吗? .NET 核心进程是否能够自我复制?

谢谢

看来您还需要将 WorkingDirectory 设置为 path\release\PublishOutput\ 以确保它在与直接在控制台中调用 dotnet process.dll 相同的环境中 运行