public static Invocation Create(bool emitMachineEnvironment = false)
{
var invocation = new Invocation();
invocation.StartTime = DateTime.UtcNow;
invocation.ProcessId = System.Diagnostics.Process.GetCurrentProcess().Id;
invocation.WorkingDirectory = Environment.CurrentDirectory;
invocation.CommandLine = Environment.CommandLine;
if (emitMachineEnvironment)
{
invocation.Machine = Environment.MachineName;
invocation.Account = Environment.UserName;
invocation.EnvironmentVariables = CopyEnvironmentVariables();
}
Assembly assembly = Assembly.GetEntryAssembly() ?? Assembly.GetExecutingAssembly();
invocation.FileName = assembly.Location;
return invocation;
}