public void Execute()
{
if (IsRunning())
throw new InvalidOperationException("The executable is already running!");
if (string.IsNullOrEmpty(_executionPath))
throw new InvalidOperationException("You must call .Copy() before .Execute()");
var startInfo = new ProcessStartInfo(GetExecutionExePath())
{
WorkingDirectory = GetExecutionDirPath(),
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
ErrorDialog = false,
UseShellExecute = false
};
_process = Start(startInfo);
}