public static void WriteAll(this Microsoft.VisualStudio.OLE.Interop.IServiceProvider serviceProvider, StreamWriter writer, IEnumerable <KeyValuePair <Guid, object> > services = null, IEnumerable <KeyValuePair <Guid, object> > packages = null) { var process = Process.GetCurrentProcess(); writer.WriteLineFormat("{0},{1},{2},{3},{4},{5}", "Dll", "Assembly", "Service", "Package", "Type", "Interface"); serviceProvider.WriteServices(writer); WriteTypes(writer); if (services != null) { process.WriteVsComServices(services, writer); } if (packages != null) { process.WriteVsComPackages(packages, writer); } writer.Flush(); }