Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        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();
            }
        }