18

I'm new to .NET Core 2.0, so i might be doing this all wrong, if so let me know.

I have a .NET core 2.0 app that should be cross platform, hence the app is a .dll console application, and it does work fine on all platforms.

I'm trying to implement kind of a watchdog, that in case of necessary process will duplicate itself, and by the same way it was called

> $ dotnet process.dll

My code is:

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();

The problem is that when the process runs this code, i'm getting the following exception

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.

I can't find any mention of ruining dotnet from code, and i don't know even if this is possible?

Is it possible? Is .NET core process able to duplicate itself?

Thanks

2
  • Can I call this code using .NET Core API ? (.NET Core 2.1) I can't get it to work Commented Sep 25, 2019 at 6:09
  • Microsoft recommends to set UseShellExecute = false for Core Apps Commented Jan 21, 2020 at 22:12

1 Answer 1

16

It seems you also need to set the WorkingDirectory to path\release\PublishOutput\ to be sure it is running in the same environment as calling dotnet process.dll directly in the console

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.