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
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