過去には私にはよく働いているこのdotnet coreでは、アプリケーションのコピーを1つしか実行しないようにするにはどうすればよいですか?
private static bool AlreadyRunning()
{
var processes = Process.GetProcesses();
var currentProc = Process.GetCurrentProcess();
logger.Info($"Current proccess: {currentProc.ProcessName}");
foreach (var process in processes)
{
if (currentProc.ProcessName == process.ProcessName && currentProc.Id != process.Id)
{
logger.Info($"Another instance of this process is already running: {process.Id}");
return true;
}
}
return false;
}
のようなものを行っています。新しいdotnetコアの世界では、プロセス名はすべてdotnet
なので、一度に実行できるのはdotnet
なので!私が欲しいものではない:D
ドットネットでこれを行う理想的な方法はありますか?私はmutexの提案を見ていますが、Windowsマシン以外のシステムで起こっている可能性のある短所やエラー状態を理解しているかどうかはわかりません。