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



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

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

我正在尝试实现一种看门狗,在必要的过程中,它将复制自身,并且以与调用相同的方式调用

> $ dotnet process.dll

我的代码是:

var process = new Process
{
   StartInfo = new ProcessStartInfo
   {
       FileName = "dotnet",
       Arguments = "pathreleasePublishOutputproces.dll"
       UseShellExecute = true,
       RedirectStandardOutput = false,
       RedirectStandardError = false,
       CreateNoWindow = true
     }
 };
 process.Start();

问题是当进程运行此代码时,我收到以下异常

未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集"System.Runtime,版本=4.2.0.0,区域性=中性,公钥令牌=某个令牌"或其依赖项之一。系统找不到指定的文件。

我找不到任何关于从代码中破坏dotnet的提及,即使这可能,我也不知道?

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

谢谢

似乎您还需要将 WorkingDirectory 设置为 pathreleasePublishOutput,以确保它在与直接在控制台中调用dotnet process.dll相同的环境中运行

最新更新