private static string CollectGeneralData() { string generalDataFile = Path.Combine(Path.GetTempPath(), RtvsGeneralDataFile); using (var sw = new StreamWriter(generalDataFile)) { try { sw.WriteLine("Operating System Information"); sw.WriteLine(" Version: " + Environment.OSVersion.ToString()); sw.WriteLine(" CPU Count: " + Environment.ProcessorCount); sw.WriteLine(" 64 bit: " + Environment.Is64BitOperatingSystem); sw.WriteLine(" System Folder: " + Environment.SystemDirectory); sw.WriteLine(" Working set: " + Environment.WorkingSet); sw.WriteLine(); Assembly thisAssembly = Assembly.GetExecutingAssembly(); sw.WriteLine("RTVS Information:"); sw.WriteLine(" Assembly: " + thisAssembly.FullName); sw.WriteLine(" Codebase: " + thisAssembly.CodeBase); sw.WriteLine(); IEnumerable <string> rEngines = RInstallation.GetInstalledEngineVersionsFromRegistry(); sw.WriteLine("Installed R Engines (from registry):"); foreach (string e in rEngines) { sw.WriteLine(" " + e); } sw.WriteLine(); string latestEngine = RInstallation.GetCompatibleEnginePathFromRegistry(); sw.WriteLine("Latest R Engine (from registry):"); sw.WriteLine(" " + latestEngine); sw.WriteLine(); string rInstallPath = RInstallation.GetRInstallPath(RToolsSettings.Current.RBasePath); sw.WriteLine("R Install path:"); sw.WriteLine(" " + rInstallPath); sw.WriteLine(); sw.WriteLine("Loaded assemblies:"); foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies().OrderBy(assem => assem.FullName)) { var assemFileVersion = assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false).OfType <AssemblyFileVersionAttribute>().FirstOrDefault(); sw.WriteLine(string.Format(CultureInfo.InvariantCulture, " {0}, FileVersion={1}", assembly.FullName, assemFileVersion == null ? "(null)" : assemFileVersion.Version )); } } catch (System.Exception ex) { sw.WriteLine(" Failed to access system data."); sw.WriteLine(ex.ToString()); sw.WriteLine(); } } return(generalDataFile); }
public static void WriteGeneralData(TextWriter writer, bool detailed) { try { writer.WriteLine("OS Information"); writer.WriteLine(" Version: " + Environment.OSVersion.ToString()); if (detailed) { writer.WriteLine(" CPU Count: " + Environment.ProcessorCount); writer.WriteLine(" 64 bit: " + Environment.Is64BitOperatingSystem); writer.WriteLine(" System Folder: " + Environment.SystemDirectory); writer.WriteLine(" Working set: " + Environment.WorkingSet); } writer.WriteLine(); Assembly thisAssembly = Assembly.GetExecutingAssembly(); writer.WriteLine("RTVS Information:"); writer.WriteLine(" Assembly: " + thisAssembly.FullName); if (detailed) { writer.WriteLine(" Codebase: " + thisAssembly.CodeBase); } writer.WriteLine(); if (detailed) { IEnumerable <string> rEngines = RInstallation.GetInstalledEngineVersionsFromRegistry(); writer.WriteLine("Installed R Engines (from registry):"); foreach (string e in rEngines) { writer.WriteLine(" " + e); } writer.WriteLine(); string latestEngine = RInstallation.GetCompatibleEnginePathFromRegistry(); writer.WriteLine("Latest R Engine (from registry):"); writer.WriteLine(" " + latestEngine); writer.WriteLine(); } string rInstallPath = RInstallation.GetRInstallPath(RToolsSettings.Current.RBasePath); writer.WriteLine("R Install path:"); writer.WriteLine(" " + rInstallPath); writer.WriteLine(); if (detailed) { writer.WriteLine("Assemblies loaded by Visual Studio:"); foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies().OrderBy(assem => assem.FullName)) { var assemFileVersion = assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false).OfType <AssemblyFileVersionAttribute>().FirstOrDefault(); writer.WriteLine(string.Format(CultureInfo.InvariantCulture, " {0}, FileVersion={1}", assembly.FullName, assemFileVersion == null ? "(null)" : assemFileVersion.Version )); } } } catch (System.Exception ex) { writer.WriteLine(" Failed to access system data."); writer.WriteLine(ex.ToString()); writer.WriteLine(); } finally { writer.Flush(); } }
public static void WriteGeneralData(TextWriter writer, bool detailed) { try { writer.WriteLine("OS Information"); writer.WriteLine(" Version: " + Environment.OSVersion); if (detailed) { writer.WriteLine(" CPU Count: " + Environment.ProcessorCount); writer.WriteLine(" 64 bit: " + Environment.Is64BitOperatingSystem); writer.WriteLine(" System Folder: " + Environment.SystemDirectory); writer.WriteLine(" Working set: " + Environment.WorkingSet); } writer.WriteLine(); Assembly thisAssembly = Assembly.GetExecutingAssembly(); writer.WriteLine("RTVS Information:"); writer.WriteLine(" Assembly: " + thisAssembly.FullName); if (detailed) { writer.WriteLine(" Codebase: " + thisAssembly.CodeBase); } writer.WriteLine(); var ri = new RInstallation(); var workflow = VsAppShell.Current.ExportProvider.GetExportedValue <IRInteractiveWorkflowProvider>().GetOrCreate(); if (detailed) { IEnumerable <string> rEngines = ri.GetInstalledEngineVersionsFromRegistry(); writer.WriteLine("Installed R Engines (from registry):"); foreach (string e in rEngines) { writer.WriteLine(" " + e); } writer.WriteLine(); string latestEngine = ri.GetCompatibleEnginePathFromRegistry(); writer.WriteLine("Latest R Engine (from registry):"); writer.WriteLine(" " + latestEngine); writer.WriteLine(); var connections = workflow.Connections.RecentConnections; writer.WriteLine("Installed R Engines (from registry):"); foreach (var connection in connections) { writer.WriteLine($" {connection.Name}: {connection.Id}"); } writer.WriteLine(); } var activeConnection = workflow.Connections.ActiveConnection; if (activeConnection != null) { writer.WriteLine("Active R URI:"); writer.WriteLine($" {activeConnection.Name}: {activeConnection.Id}"); writer.WriteLine(); } if (detailed) { writer.WriteLine("Assemblies loaded by Visual Studio:"); foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies().OrderBy(assem => assem.FullName)) { var assemFileVersion = assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false).OfType <AssemblyFileVersionAttribute>().FirstOrDefault(); writer.WriteLine(string.Format(CultureInfo.InvariantCulture, " {0}, FileVersion={1}", assembly.FullName, assemFileVersion == null ? "(null)" : assemFileVersion.Version )); } } } catch (Exception ex) { writer.WriteLine(" Failed to access system data."); writer.WriteLine(ex.ToString()); writer.WriteLine(); } finally { writer.Flush(); } }