/// <summary> /// Creates a MachineInfo describing the current machine /// </summary> public static MachineInfo CreateForCurrentMachine() { MachineInfo mi = new MachineInfo(); mi.ProcessorCount = Environment.ProcessorCount; mi.OsVersion = OperatingSystemHelper.GetOSVersion(); mi.ProcessorName = OperatingSystemHelper.GetProcessorName(); mi.ProcessorIdentifier = OperatingSystemHelper.GetProcessorIdentifier(); mi.EnvironmentVersion = Environment.Version.ToString(4); mi.InstalledMemoryMB = OperatingSystemHelper.GetPhysicalMemorySize().MB; char currentDrive = Environment.CurrentDirectory[0]; bool?seekPenalty = (char.IsLetter(currentDrive) && currentDrive > 64 && currentDrive < 123) ? FileUtilities.DoesLogicalDriveHaveSeekPenalty(currentDrive) : false; mi.CurrentDriveHasSeekPenalty = seekPenalty ?? false; mi.DotNetFrameworkVersion = OperatingSystemHelper.GetInstalledDotNetFrameworkVersion(); return(mi); }