diff --git a/.gitignore b/.gitignore index 70dc36a..dbb578c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ build/ bld/ [Bb]in/ [Oo]bj/ +.vs/ # Roslyn cache directories *.ide/ diff --git a/VSOStatusInspector.Package/Entities/VSTSStatusResponse.cs b/VSOStatusInspector.Package/Entities/VSTSStatusResponse.cs new file mode 100644 index 0000000..37711c8 --- /dev/null +++ b/VSOStatusInspector.Package/Entities/VSTSStatusResponse.cs @@ -0,0 +1,9 @@ +namespace VSTSStatusMonitor.Entities +{ + public class VSTSStatusResponse + { + public string Status { get; set; } + public string Message { get; set; } + public string Title { get; set; } + } +} \ No newline at end of file diff --git a/VSOStatusInspector.Package/EventArgs/OptionsChangedEventArgs.cs b/VSOStatusInspector.Package/EventArgs/OptionsChangedEventArgs.cs index 5d24f82..dcb598a 100644 --- a/VSOStatusInspector.Package/EventArgs/OptionsChangedEventArgs.cs +++ b/VSOStatusInspector.Package/EventArgs/OptionsChangedEventArgs.cs @@ -1,4 +1,4 @@ -namespace VSOStatusInspector { +namespace VSTSStatusMonitor { public class OptionsChangedEventArgs : System.EventArgs { public double Interval { get; set; } } diff --git a/VSOStatusInspector.Package/Guids.cs b/VSOStatusInspector.Package/Guids.cs index 62420e5..4e16578 100644 --- a/VSOStatusInspector.Package/Guids.cs +++ b/VSOStatusInspector.Package/Guids.cs @@ -3,7 +3,7 @@ using System; -namespace VSOStatusInspector +namespace VSTSStatusMonitor { static class GuidList { diff --git a/VSOStatusInspector.Package/NativeMethods.cs b/VSOStatusInspector.Package/NativeMethods.cs index 709f390..cc61072 100644 --- a/VSOStatusInspector.Package/NativeMethods.cs +++ b/VSOStatusInspector.Package/NativeMethods.cs @@ -1,7 +1,7 @@ using System; using System.Runtime.InteropServices; -namespace VSOStatusInspector +namespace VSTSStatusMonitor { internal static class NativeMethods { diff --git a/VSOStatusInspector.Package/Properties/AssemblyInfo.cs b/VSOStatusInspector.Package/Properties/AssemblyInfo.cs index 00bbfb4..6bc45ee 100644 --- a/VSOStatusInspector.Package/Properties/AssemblyInfo.cs +++ b/VSOStatusInspector.Package/Properties/AssemblyInfo.cs @@ -7,11 +7,11 @@ // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("VSTS Status Inspector")] +[assembly: AssemblyTitle("VSTS Status Monitor")] [assembly: AssemblyDescription("v1.0.0 Release")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Utkarsh Shigihalli & Tarun Arora")] -[assembly: AssemblyProduct("VSTS Status Inspector")] +[assembly: AssemblyProduct("VSTS Status Monitor")] [assembly: AssemblyCopyright("© $YYYY Utkarsh Shigihalli & Tarun Arora")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/VSOStatusInspector.Package/Resources.Designer.cs b/VSOStatusInspector.Package/Resources.Designer.cs index bb52381..ca8bc85 100644 --- a/VSOStatusInspector.Package/Resources.Designer.cs +++ b/VSOStatusInspector.Package/Resources.Designer.cs @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.0 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ -namespace VSOStatusInspector { +namespace VSTSStatusMonitor { using System; @@ -19,7 +19,7 @@ namespace VSOStatusInspector { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -39,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VSOStatusInspector.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VSTSStatusMonitor.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/VSOStatusInspector.Package/Resources/VSTSStatusInspector.ico b/VSOStatusInspector.Package/Resources/VSTSStatusInspector.ico new file mode 100644 index 0000000..d323b07 Binary files /dev/null and b/VSOStatusInspector.Package/Resources/VSTSStatusInspector.ico differ diff --git a/VSOStatusInspector.Package/Resources/VSTSStatusInspectorPackage.ico b/VSOStatusInspector.Package/Resources/VSTSStatusInspectorPackage.ico new file mode 100644 index 0000000..d323b07 Binary files /dev/null and b/VSOStatusInspector.Package/Resources/VSTSStatusInspectorPackage.ico differ diff --git a/VSOStatusInspector.Package/VSOStatusInspector.Package.csproj b/VSOStatusInspector.Package/VSOStatusInspector.Package.csproj deleted file mode 100644 index faa19d5..0000000 --- a/VSOStatusInspector.Package/VSOStatusInspector.Package.csproj +++ /dev/null @@ -1,210 +0,0 @@ - - - - 12.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - SAK - SAK - SAK - SAK - - - - Debug - AnyCPU - 2.0 - {08A0E9C8-5281-4631-8F31-893151640EF2} - {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties - VSOStatusInspector - VSOStatusInspector - True - Key.snk - v4.5 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - true - - - - ..\packages\HtmlAgilityPack.1.4.9\lib\Net45\HtmlAgilityPack.dll - True - - - - - - - - - true - - - true - - - - - - - - - - - - - - - ..\_ExternalReferences\System.Xml.XPath\System.Xml.XPath.dll - - - - - {80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2} - 8 - 0 - 0 - primary - False - False - - - {26AD1324-4B7C-44BC-84F8-B86AED45729F} - 10 - 0 - 0 - primary - False - False - - - {1A31287A-4D7D-413E-8E32-3B374931BD89} - 8 - 0 - 0 - primary - False - False - - - {2CE2370E-D744-4936-A090-3FFFE667B0E1} - 9 - 0 - 0 - primary - False - False - - - {1CBA492E-7263-47BB-87FE-639000619B15} - 8 - 0 - 0 - primary - False - False - - - {00020430-0000-0000-C000-000000000046} - 2 - 0 - 0 - primary - False - False - - - - - - - - Component - - - True - True - Resources.resx - - - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - true - VSPackage - - - - - - Designer - - - - - - - - true - - - Always - true - - - Always - true - - - Always - true - - - Always - true - - - Always - true - - - Always - true - - - - true - - - - - \ No newline at end of file diff --git a/VSOStatusInspector.Package/VSPackage.resx b/VSOStatusInspector.Package/VSPackage.resx index ecb00c6..4a6a279 100644 --- a/VSOStatusInspector.Package/VSPackage.resx +++ b/VSOStatusInspector.Package/VSPackage.resx @@ -118,13 +118,19 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - VSTS Status Inspector + VSTS Status Monitor - Inspect status of Visual Studio Online inside Visual Studio + Monitor status of Visual Studio Team Services inside Visual Studio Resources\Package.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\VSTSStatusInspectorPackage.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VSTSStatusInspector.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/VSOStatusInspector.Package/VSTSStatusMonitor.Package.csproj b/VSOStatusInspector.Package/VSTSStatusMonitor.Package.csproj new file mode 100644 index 0000000..0d7f1ef --- /dev/null +++ b/VSOStatusInspector.Package/VSTSStatusMonitor.Package.csproj @@ -0,0 +1,236 @@ + + + + + 15.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + SAK + SAK + SAK + SAK + + + + + 12.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + + + Debug + AnyCPU + 2.0 + {08A0E9C8-5281-4631-8F31-893151640EF2} + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + VSTSStatusMonitor + VSTSStatusMonitor + True + Key.snk + v4.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + False + False + ..\_ExternalReferences\sdk-vs2015\EnvDTE.dll + + + False + False + ..\_ExternalReferences\sdk-vs2015\envdte100.dll + + + False + False + ..\_ExternalReferences\sdk-vs2015\envdte80.dll + + + False + False + ..\_ExternalReferences\sdk-vs2015\envdte90.dll + + + ..\packages\HtmlAgilityPack.1.5.1\lib\Net45\HtmlAgilityPack.dll + + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.OLE.Interop.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.14.0.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.Immutable.10.0.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.Immutable.11.0.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.Immutable.12.0.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.Immutable.14.0.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.Interop.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.Interop.8.0.dll + + + False + ..\_ExternalReferences\sdk-vs2015\Microsoft.VisualStudio.Shell.Interop.9.0.dll + + + ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + + + Component + + + True + True + Resources.resx + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + true + VSPackage + + + + + + + + + + + + true + Always + + + Designer + + + + + Always + true + + + Always + true + + + Always + true + + + Always + true + + + Always + true + + + Always + true + + + + + False + .NET Framework 3.5 SP1 + false + + + + true + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/VSOStatusInspector.Package/VSOStatusInspectorOptions.cs b/VSOStatusInspector.Package/VSTSStatusMonitorOptions.cs similarity index 92% rename from VSOStatusInspector.Package/VSOStatusInspectorOptions.cs rename to VSOStatusInspector.Package/VSTSStatusMonitorOptions.cs index 86f916e..06fc727 100644 --- a/VSOStatusInspector.Package/VSOStatusInspectorOptions.cs +++ b/VSOStatusInspector.Package/VSTSStatusMonitorOptions.cs @@ -3,11 +3,11 @@ using System.Runtime.InteropServices; using Microsoft.VisualStudio.Shell; -namespace VSOStatusInspector +namespace VSTSStatusMonitor { [ClassInterface(ClassInterfaceType.AutoDual)] [CLSCompliant(false), ComVisible(true)] - public class VSOStatusInspectorOptions : DialogPage + public class VSTSStatusMonitorOptions : DialogPage { private int _interval = 60; diff --git a/VSOStatusInspector.Package/VSOStatusInspectorPackage.cs b/VSOStatusInspector.Package/VSTSStatusMonitorPackage.cs similarity index 60% rename from VSOStatusInspector.Package/VSOStatusInspectorPackage.cs rename to VSOStatusInspector.Package/VSTSStatusMonitorPackage.cs index ef183a1..10de8e4 100644 --- a/VSOStatusInspector.Package/VSOStatusInspectorPackage.cs +++ b/VSOStatusInspector.Package/VSTSStatusMonitorPackage.cs @@ -1,51 +1,44 @@ -using HtmlAgilityPack; -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; -using System; +using System; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Drawing; using System.Drawing.Drawing2D; -using System.Globalization; +using System.Net.Http; using System.Runtime.InteropServices; using System.Timers; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; +using Newtonsoft.Json; +using VSTSStatusMonitor.Entities; -namespace VSOStatusInspector +namespace VSTSStatusMonitor { + [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] [PackageRegistration(UseManagedResourcesOnly = true)] [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] [Guid(GuidList.guidVSOStatusPkgString)] [ProvideAutoLoad(UIContextGuids80.NoSolution)] [ProvideAutoLoad(UIContextGuids80.SolutionExists)] [ProvideBindingPath] - [ProvideOptionPage(typeof(VSOStatusInspectorOptions), EXTENSION_NAME, "General", 0, 0, true)] - public sealed class VSOStatusInspectorPackage : Package, IDisposable + [ProvideOptionPage(typeof(VSTSStatusMonitorOptions), EXTENSION_NAME, "General", 0, 0, true)] + public sealed class VSTSStatusMonitorPackage : Package { - private const string EXTENSION_NAME = "VSTS Status Inspector"; + private const string EXTENSION_NAME = "VSTS Status Monitor"; private IVsStatusbar _bar; private IntPtr _hdcBitmap = IntPtr.Zero; - private VSOStatusInspectorOptions _options; + private VSTSStatusMonitorOptions _options; private Guid _paneGuid = new Guid("{170638A1-CFD7-47C8-975A-FBAA9E532AD5}"); private IVsOutputWindow _outputWindow; private Timer _timer; - public VSOStatusInspectorPackage() - { - } - - /// - /// Initialization of the package; this method is called right after the package is sited, so this is the place - /// where you can put all the initialization code that rely on services provided by VisualStudio. - /// protected override void Initialize() { - Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString())); base.Initialize(); - //Set to unknown icon first SetIcon(Resources.unknown); //get interval from options - _options = (VSOStatusInspectorOptions)GetDialogPage(typeof(VSOStatusInspectorOptions)); + _options = (VSTSStatusMonitorOptions)GetDialogPage(typeof(VSTSStatusMonitorOptions)); if (_options != null) { _options.OnOptionsChanged += OnOptionsChanged; @@ -59,6 +52,7 @@ protected override void Initialize() _timer.Interval = TimeSpan.FromSeconds(_options.Interval).TotalMilliseconds; _timer.Elapsed += OnTimerTick; _timer.Start(); + } private void WriteToOutputWindow(string message) @@ -75,7 +69,7 @@ private void WriteToOutputWindow(string message) // Retrieve the new pane. OutputWindow.GetPane(ref _paneGuid, out outputPane); - outputPane.OutputStringThreadSafe(string.Format("[{0}]\t{1}", DateTime.Now.ToString("hh:mm:ss tt"), message)); + outputPane.OutputStringThreadSafe($"[{DateTime.Now:hh:mm:ss tt}]\t{message}"); outputPane.OutputStringThreadSafe(Environment.NewLine); } @@ -93,64 +87,41 @@ private void SetIcon(Bitmap icon) private void OnTimerTick(object sender, ElapsedEventArgs e) { - Debug.WriteLine(string.Format("{0}: Checking VSTS status", DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss"))); - - //set icon to unknown till processing - SetIcon(Resources.waiting); - - HtmlWeb htmlWeb = new HtmlWeb(); - HtmlDocument doc = htmlWeb.Load("https://www.visualstudio.com/en-us/support/support-overview-vs.aspx"); - + Debug.WriteLine($"{DateTime.Now:dd-MM-yyyy HH:mm:ss}: Checking VSTS status"); try { - var div = doc.DocumentNode.SelectSingleNode("//div[@class='TfsServiceStatus']"); - if (div == null) - { - SetIcon(Resources.unknown); - WriteToOutputWindow("Could not parse the status. Please visit https://www.visualstudio.com/en-us/support/support-overview-vs.aspx"); - return; - } - var img = div.SelectSingleNode("//img[@id]"); - var h1 = div.SelectSingleNode("//div[@class='RichText']/div[@class='header']/h1"); - var p = div.SelectSingleNode("//div[@class='RichText']/div[@class='header']/p"); - //var img = doc.DocumentNode.SelectSingleNode("//div[@class='TfsServiceStatus']//img[@id]"); - if (img != null) + //set icon to unknown till processing + SetIcon(Resources.waiting); + + using (var client = new HttpClient()) { - var imageId = img.Id.ToUpper(); - if (imageId == "GREEN") - { - SetIcon(Resources.green); - } - else if (imageId == "YELLOW") - { - SetIcon(Resources.yellow); - } - else if (imageId == "RED") - { - SetIcon(Resources.red); - } - else + var response = client.GetAsync("https://www.visualstudio.com/wp-json/vscom/v1/service-status").GetAwaiter() + .GetResult(); + + if (!response.IsSuccessStatusCode) { SetIcon(Resources.unknown); + WriteToOutputWindow("Could not parse the status. Please visit https://www.visualstudio.com/team-services/support"); + return; } - if (h1 != null && p != null) + var content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); + + var vstsResponse = JsonConvert.DeserializeObject(content); + + + if (string.Equals("maintenance", vstsResponse.Status, StringComparison.InvariantCultureIgnoreCase)) { - var msg = string.IsNullOrEmpty(h1.InnerText) - ? string.Format("Visual Studio Team Services Status - {0}", p.InnerText) - : string.Format("{0} - {1}", h1.InnerText, p.InnerText); - WriteToOutputWindow(msg); + SetIcon(Resources.red); + WriteToOutputWindow($"{vstsResponse.Title} - {vstsResponse.Message}. Please visit https://blogs.msdn.com/b/vsoservice/ for details and history"); + } - else + else if (string.Equals("available", vstsResponse.Status, StringComparison.InvariantCultureIgnoreCase)) { - SetIcon(Resources.unknown); - WriteToOutputWindow("Could not parse the status. Please visit https://www.visualstudio.com/en-us/support/support-overview-vs.aspx"); + SetIcon(Resources.green); + WriteToOutputWindow($"{vstsResponse.Title} - {vstsResponse.Message}."); + } } - else - { - Debug.WriteLine("Found status as Unknown"); - SetIcon(Resources.unknown); - } } catch (Exception exception) { @@ -164,37 +135,30 @@ private void OnOptionsChanged(object sender, OptionsChangedEventArgs e) _timer.Interval = TimeSpan.FromSeconds(e.Interval).TotalMilliseconds; WriteToOutputWindow(String.Format("Interval changed to {0} seconds", e.Interval)); } - - /// - /// Gets the status bar. - /// - /// The status bar. - private IVsStatusbar StatusBar + public IVsOutputWindow OutputWindow { get { - if (_bar == null) + if (_outputWindow == null) { - _bar = GetService(typeof(SVsStatusbar)) as IVsStatusbar; + _outputWindow = (IVsOutputWindow)GetService(typeof(SVsOutputWindow)); + return _outputWindow; } - - return _bar; + return _outputWindow; } } - - public IVsOutputWindow OutputWindow + private IVsStatusbar StatusBar { get { - if (_outputWindow == null) + if (_bar == null) { - _outputWindow = (IVsOutputWindow)GetService(typeof(SVsOutputWindow)); - return _outputWindow; + _bar = GetService(typeof(SVsStatusbar)) as IVsStatusbar; } - return _outputWindow; + + return _bar; } } - public static Bitmap ResizeImage(Bitmap imgToResize, int newHeight) { //http://stackoverflow.com/questions/25872283/loosing-transparency-in-system-drawing-image-when-using-imageresizer-for-resizin @@ -226,6 +190,5 @@ public void Dispose() _timer.Dispose(); } } - } } \ No newline at end of file diff --git a/VSOStatusInspector.Package/app.config b/VSOStatusInspector.Package/app.config new file mode 100644 index 0000000..26c6615 --- /dev/null +++ b/VSOStatusInspector.Package/app.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VSOStatusInspector.Package/packages.config b/VSOStatusInspector.Package/packages.config index 87c301a..b32f10e 100644 --- a/VSOStatusInspector.Package/packages.config +++ b/VSOStatusInspector.Package/packages.config @@ -1,4 +1,6 @@  - + + + \ No newline at end of file diff --git a/VSOStatusInspector.Package/source.extension.vsixmanifest b/VSOStatusInspector.Package/source.extension.vsixmanifest index 3e53a4e..dc9ae75 100644 --- a/VSOStatusInspector.Package/source.extension.vsixmanifest +++ b/VSOStatusInspector.Package/source.extension.vsixmanifest @@ -1,31 +1,22 @@ - - - - VSTS Status Inspector - Utkarsh Shigihalli and Tarun Arora - 1.0 - Inspect status of Visual Studio Team Services inside Visual Studio - 1033 - Resources\Package.ico - Resources\preview.png - - - Ultimate - Premium - Pro - IntegratedShell - - - Ultimate - Premium - Pro - IntegratedShell - - - - - - |%CurrentProject%;PkgdefProjectOutputGroup| - |%CurrentProject%| - - \ No newline at end of file + + + + + VSTS Status Monitor + Monitor status of Visual Studio Team Services inside Visual Studio + Resources\Package.ico + Resources\preview.png + VSTS, Visual Studio Team Service, Monitor, Status, Inspector + + + + + + + + + + + + + diff --git a/VSOStatusInspector.sln b/VSTSStatusMonitor.sln similarity index 70% rename from VSOStatusInspector.sln rename to VSTSStatusMonitor.sln index 1224789..9a25473 100644 --- a/VSOStatusInspector.sln +++ b/VSTSStatusMonitor.sln @@ -1,16 +1,18 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40302.0 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.8 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSOStatusInspector.Package", "VSOStatusInspector.Package\VSOStatusInspector.Package.csproj", "{08A0E9C8-5281-4631-8F31-893151640EF2}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Other", "Other", "{B5452847-0C10-44E2-AB86-869EA30D9440}" ProjectSection(SolutionItems) = preProject + .gitattributes = .gitattributes + .gitignore = .gitignore appveyor.yml = appveyor.yml README.md = README.md EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSTSStatusMonitor.Package", "VSOStatusInspector.Package\VSTSStatusMonitor.Package.csproj", "{08A0E9C8-5281-4631-8F31-893151640EF2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -25,4 +27,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5D4BD204-9159-404C-B6F0-A820EB7A7ABD} + EndGlobalSection EndGlobal diff --git a/_ExternalReferences/sdk-vs2015/EnvDTE.dll b/_ExternalReferences/sdk-vs2015/EnvDTE.dll new file mode 100644 index 0000000..6cfdd78 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/EnvDTE.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.ImageCatalog.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.ImageCatalog.dll new file mode 100644 index 0000000..42c032a Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.ImageCatalog.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.OLE.Interop.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.OLE.Interop.dll new file mode 100644 index 0000000..d9bbd3b Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.OLE.Interop.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.14.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.14.0.dll new file mode 100644 index 0000000..6f374bb Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.14.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.10.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.10.0.dll new file mode 100644 index 0000000..55701fd Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.10.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.11.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.11.0.dll new file mode 100644 index 0000000..d6b7bb3 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.11.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.12.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.12.0.dll new file mode 100644 index 0000000..40777cc Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.12.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.14.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.14.0.dll new file mode 100644 index 0000000..a670f9d Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Immutable.14.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.10.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.10.0.dll new file mode 100644 index 0000000..a138f1a Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.10.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.11.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.11.0.dll new file mode 100644 index 0000000..7103752 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.11.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.12.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.12.0.dll new file mode 100644 index 0000000..d218915 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.12.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.8.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.8.0.dll new file mode 100644 index 0000000..c3b3f59 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.8.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.9.0.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.9.0.dll new file mode 100644 index 0000000..26adca0 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.9.0.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.dll new file mode 100644 index 0000000..571ab91 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.Interop.dll differ diff --git a/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.dll b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.dll new file mode 100644 index 0000000..f4b08a2 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/Microsoft.VisualStudio.Shell.dll differ diff --git a/_ExternalReferences/sdk-vs2015/envdte100.dll b/_ExternalReferences/sdk-vs2015/envdte100.dll new file mode 100644 index 0000000..f1da089 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/envdte100.dll differ diff --git a/_ExternalReferences/sdk-vs2015/envdte80.dll b/_ExternalReferences/sdk-vs2015/envdte80.dll new file mode 100644 index 0000000..d4f6324 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/envdte80.dll differ diff --git a/_ExternalReferences/sdk-vs2015/envdte90.dll b/_ExternalReferences/sdk-vs2015/envdte90.dll new file mode 100644 index 0000000..2bd2d64 Binary files /dev/null and b/_ExternalReferences/sdk-vs2015/envdte90.dll differ diff --git a/appveyor.yml b/appveyor.yml index 1c46d56..2d14e61 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -image: Visual Studio 2015 +image: Visual Studio 2017 install: - ps: (new-object Net.WebClient).DownloadString("https://raw.github.com/madskristensen/ExtensionScripts/master/AppVeyor/vsix.ps1") | iex