diff --git a/VSLXshared/DataModel/VisualStudioInstanceManager.cs b/VSLXshared/DataModel/VisualStudioInstanceManager.cs index e2139df..781a0f0 100644 --- a/VSLXshared/DataModel/VisualStudioInstanceManager.cs +++ b/VSLXshared/DataModel/VisualStudioInstanceManager.cs @@ -60,6 +60,35 @@ public int Count } } + /// + /// Gets the installer path. + /// + public static string InstallerPath + { + get + { + string location = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Microsoft Visual Studio", "Installer"); + string location86 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Microsoft Visual Studio", "Installer"); + string installerPath = Path.Combine(location, "vs_installer.exe"); + string installerPath86 = Path.Combine(location86, "vs_installer.exe"); + + if(Directory.Exists(location) || Directory.Exists(location86)) + { + if (File.Exists(installerPath)) + { + return installerPath; + } + if (File.Exists(installerPath86)) + { + return installerPath86; + } + } + + // not found, return the microsoft download site for Visual Studio + return "https://visualstudio.microsoft.com/downloads/"; + } + } + /// /// Access an instance by index /// diff --git a/VSLauncherX/MainDialog.Designer.cs b/VSLauncherX/MainDialog.Designer.cs index 8345117..20095a5 100644 --- a/VSLauncherX/MainDialog.Designer.cs +++ b/VSLauncherX/MainDialog.Designer.cs @@ -4,7 +4,7 @@ namespace VSLauncher { - partial class MainDialog + partial class MainDialog { /// /// Required designer variable. @@ -59,7 +59,7 @@ private void InitializeComponent() imageList3 = new ImageList(this.components); mainPanel = new TableLayoutPanel(); flowLayoutPanel1 = new FlowLayoutPanel(); - this.selectVisualStudioVersion = new VisualStudioCombobox(); + selectVisualStudioVersion = new VisualStudioCombobox(); btnMainStartVisualStudio1 = new Button(); btnMainStartVisualStudio2 = new Button(); btnMainStartVisualStudio3 = new Button(); @@ -77,12 +77,13 @@ private void InitializeComponent() runToolStripMenuItem = new ToolStripMenuItem(); runAsAdminToolStripMenuItem = new ToolStripMenuItem(); renameToolStripMenuItem = new ToolStripMenuItem(); - removeToolStripMenuItem = new ToolStripMenuItem(); settingsToolStripMenuItem = new ToolStripMenuItem(); + removeToolStripMenuItem = new ToolStripMenuItem(); toolStripMenuItem4 = new ToolStripSeparator(); favoriteToolStripMenuItem = new ToolStripMenuItem(); statusStrip1 = new StatusStrip(); mainStatusLabel = new ToolStripStatusLabel(); + btnVsInstaller = new Button(); toolStripMenuItem1 = new ToolStripSeparator(); toolStripMenuItem2 = new ToolStripSeparator(); flowLayoutPanel2 = new FlowLayoutPanel(); @@ -102,12 +103,12 @@ private void InitializeComponent() // toolStripMenuItem1 // toolStripMenuItem1.Name = "toolStripMenuItem1"; - toolStripMenuItem1.Size = new Size(196, 6); + toolStripMenuItem1.Size = new Size(191, 6); // // toolStripMenuItem2 // toolStripMenuItem2.Name = "toolStripMenuItem2"; - toolStripMenuItem2.Size = new Size(196, 6); + toolStripMenuItem2.Size = new Size(191, 6); // // flowLayoutPanel2 // @@ -246,6 +247,7 @@ private void InitializeComponent() leftSubPanel.Margin = new Padding(0, 0, 4, 0); leftSubPanel.Name = "leftSubPanel"; leftSubPanel.RowCount = 3; + mainPanel.SetRowSpan(leftSubPanel, 2); leftSubPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F)); leftSubPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F)); leftSubPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); @@ -432,49 +434,51 @@ private void InitializeComponent() mainPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 234F)); mainPanel.Controls.Add(leftSubPanel, 0, 0); mainPanel.Controls.Add(flowLayoutPanel1, 1, 0); + mainPanel.Controls.Add(btnVsInstaller, 1, 1); mainPanel.Location = new Point(0, 0); mainPanel.Margin = new Padding(4, 3, 3, 3); mainPanel.Name = "mainPanel"; - mainPanel.RowCount = 1; + mainPanel.RowCount = 2; mainPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + mainPanel.RowStyles.Add(new RowStyle()); mainPanel.Size = new Size(933, 497); mainPanel.TabIndex = 0; mainPanel.Resize += mainPanel_Resize; // // flowLayoutPanel1 // + flowLayoutPanel1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; flowLayoutPanel1.Controls.Add(label2); - flowLayoutPanel1.Controls.Add(this.selectVisualStudioVersion); + flowLayoutPanel1.Controls.Add(selectVisualStudioVersion); flowLayoutPanel1.Controls.Add(btnMainStartVisualStudio1); flowLayoutPanel1.Controls.Add(btnMainStartVisualStudio2); flowLayoutPanel1.Controls.Add(btnMainStartVisualStudio3); flowLayoutPanel1.Controls.Add(btnMainStartVisualStudio4); flowLayoutPanel1.Controls.Add(btnMainStartVisualStudio5); - flowLayoutPanel1.Dock = DockStyle.Fill; flowLayoutPanel1.FlowDirection = FlowDirection.TopDown; flowLayoutPanel1.Location = new Point(699, 0); flowLayoutPanel1.Margin = new Padding(0); flowLayoutPanel1.Name = "flowLayoutPanel1"; - flowLayoutPanel1.Size = new Size(234, 497); + flowLayoutPanel1.Size = new Size(234, 449); flowLayoutPanel1.TabIndex = 1; // // selectVisualStudioVersion // - this.selectVisualStudioVersion.DrawMode = DrawMode.OwnerDrawFixed; - this.selectVisualStudioVersion.DropDownHeight = 300; - this.selectVisualStudioVersion.DropDownStyle = ComboBoxStyle.DropDownList; - this.selectVisualStudioVersion.IntegralHeight = false; - this.selectVisualStudioVersion.ItemHeight = 28; - this.selectVisualStudioVersion.Location = new Point(0, 40); - this.selectVisualStudioVersion.Margin = new Padding(0, 0, 0, 6); - this.selectVisualStudioVersion.Name = "selectVisualStudioVersion"; - this.selectVisualStudioVersion.SelectedItem = null; - this.selectVisualStudioVersion.ShowDefault = false; - this.selectVisualStudioVersion.Size = new Size(232, 34); - this.selectVisualStudioVersion.TabIndex = 0; - tooltipForButtons.SetToolTip(this.selectVisualStudioVersion, "Visual Studio versions currently instlled"); - this.selectVisualStudioVersion.DrawItem += selectVisualStudioVersion_DrawItem; - this.selectVisualStudioVersion.SelectedIndexChanged += selectVisualStudioVersion_SelectedIndexChanged; + selectVisualStudioVersion.DrawMode = DrawMode.OwnerDrawFixed; + selectVisualStudioVersion.DropDownHeight = 300; + selectVisualStudioVersion.DropDownStyle = ComboBoxStyle.DropDownList; + selectVisualStudioVersion.IntegralHeight = false; + selectVisualStudioVersion.ItemHeight = 28; + selectVisualStudioVersion.Location = new Point(0, 40); + selectVisualStudioVersion.Margin = new Padding(0, 0, 0, 6); + selectVisualStudioVersion.Name = "selectVisualStudioVersion"; + selectVisualStudioVersion.SelectedItem = null; + selectVisualStudioVersion.ShowDefault = false; + selectVisualStudioVersion.Size = new Size(232, 34); + selectVisualStudioVersion.TabIndex = 0; + tooltipForButtons.SetToolTip(selectVisualStudioVersion, "Visual Studio versions currently instlled"); + selectVisualStudioVersion.DrawItem += selectVisualStudioVersion_DrawItem; + selectVisualStudioVersion.SelectedIndexChanged += selectVisualStudioVersion_SelectedIndexChanged; // // btnMainStartVisualStudio1 // @@ -599,90 +603,90 @@ private void InitializeComponent() // ctxMenu.Items.AddRange(new ToolStripItem[] { addToolStripMenuItem, toolStripMenuItem3, runToolStripMenuItem, runAsAdminToolStripMenuItem, renameToolStripMenuItem, toolStripMenuItem1, settingsToolStripMenuItem, toolStripMenuItem2, removeToolStripMenuItem, toolStripMenuItem4, favoriteToolStripMenuItem }); ctxMenu.Name = "ctxMenu"; - ctxMenu.Size = new Size(200, 204); + ctxMenu.Size = new Size(195, 182); ctxMenu.Opening += ctxMenu_Opening; // // addToolStripMenuItem // addToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { newGroupToolStripMenuItem, fromFolderToolStripMenuItem, solutionProjectToolStripMenuItem }); addToolStripMenuItem.Name = "addToolStripMenuItem"; - addToolStripMenuItem.Size = new Size(199, 22); + addToolStripMenuItem.Size = new Size(194, 22); addToolStripMenuItem.Text = "Add..."; // // newGroupToolStripMenuItem // newGroupToolStripMenuItem.Name = "newGroupToolStripMenuItem"; - newGroupToolStripMenuItem.Size = new Size(180, 22); + newGroupToolStripMenuItem.Size = new Size(169, 22); newGroupToolStripMenuItem.Text = "New Group..."; newGroupToolStripMenuItem.Click += newGroupToolStripMenuItem_Click; // // fromFolderToolStripMenuItem // fromFolderToolStripMenuItem.Name = "fromFolderToolStripMenuItem"; - fromFolderToolStripMenuItem.Size = new Size(180, 22); + fromFolderToolStripMenuItem.Size = new Size(169, 22); fromFolderToolStripMenuItem.Text = "From Folder..."; fromFolderToolStripMenuItem.Click += fromFolderToolStripMenuItem_Click; // // solutionProjectToolStripMenuItem // solutionProjectToolStripMenuItem.Name = "solutionProjectToolStripMenuItem"; - solutionProjectToolStripMenuItem.Size = new Size(180, 22); + solutionProjectToolStripMenuItem.Size = new Size(169, 22); solutionProjectToolStripMenuItem.Text = "Solution/Project..."; solutionProjectToolStripMenuItem.Click += solutionProjectToolStripMenuItem_Click; // // toolStripMenuItem3 // toolStripMenuItem3.Name = "toolStripMenuItem3"; - toolStripMenuItem3.Size = new Size(196, 6); + toolStripMenuItem3.Size = new Size(191, 6); // // runToolStripMenuItem // runToolStripMenuItem.Name = "runToolStripMenuItem"; runToolStripMenuItem.ShortcutKeys = Keys.F5; - runToolStripMenuItem.Size = new Size(199, 22); + runToolStripMenuItem.Size = new Size(194, 22); runToolStripMenuItem.Text = "Run"; runToolStripMenuItem.Click += runToolStripMenuItem_Click; // // runAsAdminToolStripMenuItem // runAsAdminToolStripMenuItem.Name = "runAsAdminToolStripMenuItem"; - runAsAdminToolStripMenuItem.ShortcutKeys = Keys.F5 | Keys.Control; - runAsAdminToolStripMenuItem.Size = new Size(199, 22); + runAsAdminToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.F5; + runAsAdminToolStripMenuItem.Size = new Size(194, 22); runAsAdminToolStripMenuItem.Text = "Run as Admin"; runAsAdminToolStripMenuItem.Click += runAsAdminToolStripMenuItem_Click; // // renameToolStripMenuItem // renameToolStripMenuItem.Name = "renameToolStripMenuItem"; - renameToolStripMenuItem.Size = new Size(199, 22); + renameToolStripMenuItem.Size = new Size(194, 22); renameToolStripMenuItem.Text = "Rename..."; renameToolStripMenuItem.Click += renameToolStripMenuItem_Click; // + // settingsToolStripMenuItem + // + settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; + settingsToolStripMenuItem.ShortcutKeys = Keys.Alt | Keys.Return; + settingsToolStripMenuItem.Size = new Size(194, 22); + settingsToolStripMenuItem.Text = "Settings..."; + settingsToolStripMenuItem.Click += settingsToolStripMenuItem_Click; + // // removeToolStripMenuItem // removeToolStripMenuItem.Name = "removeToolStripMenuItem"; removeToolStripMenuItem.ShortcutKeys = Keys.Shift | Keys.Delete; - removeToolStripMenuItem.Size = new Size(199, 22); + removeToolStripMenuItem.Size = new Size(194, 22); removeToolStripMenuItem.Text = "Remove..."; removeToolStripMenuItem.Click += removeToolStripMenuItem_Click; // - // settingsToolStripMenuItem - // - settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - settingsToolStripMenuItem.ShortcutKeys = Keys.Alt | Keys.Enter; - settingsToolStripMenuItem.Size = new Size(199, 22); - settingsToolStripMenuItem.Text = "Settings..."; - settingsToolStripMenuItem.Click += settingsToolStripMenuItem_Click; - // // toolStripMenuItem4 // toolStripMenuItem4.Name = "toolStripMenuItem4"; - toolStripMenuItem4.Size = new Size(196, 6); + toolStripMenuItem4.Size = new Size(191, 6); // // favoriteToolStripMenuItem // favoriteToolStripMenuItem.Name = "favoriteToolStripMenuItem"; - favoriteToolStripMenuItem.Size = new Size(199, 22); + favoriteToolStripMenuItem.Size = new Size(194, 22); favoriteToolStripMenuItem.Text = "Favorite"; favoriteToolStripMenuItem.Click += favoriteToolStripMenuItem_Click; // @@ -701,6 +705,24 @@ private void InitializeComponent() mainStatusLabel.Size = new Size(193, 17); mainStatusLabel.Text = "Lets do something incredible today"; // + // btnVsInstaller + // + btnVsInstaller.Font = new Font("Segoe UI", 10F, FontStyle.Bold, GraphicsUnit.Point); + btnVsInstaller.Image = Resources.ImportVS1; + btnVsInstaller.ImageAlign = ContentAlignment.MiddleLeft; + btnVsInstaller.Location = new Point(699, 449); + btnVsInstaller.Margin = new Padding(0); + btnVsInstaller.Name = "btnVsInstaller"; + btnVsInstaller.Padding = new Padding(4, 0, 4, 0); + btnVsInstaller.Size = new Size(232, 48); + btnVsInstaller.TabIndex = 5; + btnVsInstaller.Tag = ""; + btnVsInstaller.Text = "Visual Studio Installer"; + btnVsInstaller.TextAlign = ContentAlignment.MiddleLeft; + btnVsInstaller.TextImageRelation = TextImageRelation.ImageBeforeText; + btnVsInstaller.UseVisualStyleBackColor = true; + btnVsInstaller.Click += btnVsInstaller_Click; + // // MainDialog // this.AutoScaleDimensions = new SizeF(7F, 15F); @@ -772,6 +794,7 @@ private void InitializeComponent() private ToolStripSeparator toolStripMenuItem4; private ToolStripMenuItem favoriteToolStripMenuItem; private Button btnImportSoP; + private Button btnVsInstaller; } } diff --git a/VSLauncherX/MainDialog.cs b/VSLauncherX/MainDialog.cs index 850081b..0d46ffa 100644 --- a/VSLauncherX/MainDialog.cs +++ b/VSLauncherX/MainDialog.cs @@ -19,10 +19,10 @@ namespace VSLauncher { - /// - /// The main dialog. - /// - public partial class MainDialog : Form + /// + /// The main dialog. + /// + public partial class MainDialog : Form { /// /// used to indicate that some internal update is going on @@ -205,11 +205,11 @@ public MainDialog() bool bAdmin = AdminInfo.IsCurrentUserAdmin(); bool bElevated = AdminInfo.IsElevated(); - if(bAdmin || bElevated) + if (bAdmin || bElevated) { - if(bAdmin && bElevated) + if (bAdmin && bElevated) this.Text += $" (Administrator, Elevated)"; - else if(bAdmin) + else if (bAdmin) this.Text += $" (Administrator)"; else this.Text += $" (Elevated)"; @@ -255,11 +255,37 @@ private void MainDialog_Load(object sender, EventArgs e) this.olvFiles.RebuildColumns(); } + FindVisualStudioInstaller(); + SetupTaskbarTasks(); _ = this.txtFilter.Focus(); } + /// + /// Finds the visual studio installer and sets up the button. + /// + private void FindVisualStudioInstaller() + { + string vsi = VisualStudioInstanceManager.InstallerPath; + + btnVsInstaller.Tag = vsi; + + if(vsi.StartsWith("http")) + { + btnVsInstaller.Text = "Download Visual Studio"; + btnVsInstaller.Image = Resources.Download; + } + else + { + btnVsInstaller.Tag = vsi; + btnVsInstaller.Text = "Visual Studio Installer"; + // get icon from installer and set as image into the button + Icon? ico = Icon.ExtractAssociatedIcon(vsi); + btnVsInstaller.Image = ico is null ? Resources.Installer : ico.ToBitmap(); + } + } + /// /// Fetches the git status for all items in the tree /// @@ -268,7 +294,7 @@ private void FetchGitStatus(VsFolder folder) { foreach (var item in folder.Items) { - if(item is not VsFolder) + if (item is not VsFolder) { // find out if this is a git repo by looking for the ".git" folder // if it is, then we can get the status @@ -588,7 +614,7 @@ private void mainSettings_Click(object sender, EventArgs e) if (dlg.ShowDialog() == DialogResult.OK) { - if(Properties.Settings.Default.AlwaysAdmin || Properties.Settings.Default.AutoStart) + if (Properties.Settings.Default.AlwaysAdmin || Properties.Settings.Default.AutoStart) { if (Properties.Settings.Default.AlwaysAdmin) { @@ -1458,6 +1484,43 @@ private void btnMainStartVisualStudio5_Click(object sender, EventArgs e) this.Cursor = Cursors.Default; } } + + /// + /// Handles click on the btnVsInstaller button + /// + /// The sender. + /// The event parameters + private void btnVsInstaller_Click(object sender, EventArgs e) + { + string vsi = (string)btnVsInstaller.Tag; + + if (vsi.StartsWith("http")) + { + _ = Process.Start("explorer.exe", vsi); + } + else + { + // ask user if installer should be started with elevated privileges + bool bIsElevated = AdminInfo.IsCurrentUserAdmin() || AdminInfo.IsElevated(); + + if (!bIsElevated && MessageBox.Show("The Visual Studio Installer may required elevated privileges, do you want to run it as administrator?", "Start installer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + { + ProcessStartInfo psi = new ProcessStartInfo + { + Verb = "runas", + UseShellExecute = true, + FileName = vsi + }; + + _ = Process.Start(psi); + } + else + { + _ = Process.Start(vsi); + } + } + + } #endregion /// diff --git a/VSLauncherX/MainDialog.resx b/VSLauncherX/MainDialog.resx index 331cbe5..2a9614f 100644 --- a/VSLauncherX/MainDialog.resx +++ b/VSLauncherX/MainDialog.resx @@ -129,6 +129,9 @@ False + + False + @@ -160,7 +163,7 @@ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wAAADsABataJCQAAAidJREFUSEvtk8trE1EUh7NQ+m/cOJAajVLoIqVCKlnYLNzERTdZSGWCCKULCZTY + vwAADr8BOAVTJAAAAidJREFUSEvtk8trE1EUh7NQ+m/cOJAajVLoIqVCKlnYLNzERTdZSGWCCKULCZTY qksNgqSYZTY1pCAjGgJCQiFSWhkSkEDBtI2rNqtmY/Oa7fGew9zr3GQoDcSVHviYe+7j92Ue8ViWBX8T ElSrVchmsxMFM6UAJ8Lh8ETBzP+CC3EVnP/qTIR/UNDr9mhzv9+HbqfnuseJqyASiUDnvDuyWYRX3n+D H/vHNBay4b2CEUGlUoFmswmDwUCRiPDtFwV4zJLEWvAVmIXvIArPFYtFAsdYIwLkYPcQDs2fYA0skriF @@ -239,7 +242,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAATh4AAAJNU0Z0AUkBTAIBARwB - AAGwAQEBsAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAGAAwABAQEAAQgG + AAG4AQEBuAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAGAAwABAQEAAQgG AAEgGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMB AAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQAB kwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwAC @@ -374,6 +377,12 @@ False + + 17, 17 + + + False + iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAABGdBTUEAALGPC/xhBQAACshJREFUaEPt @@ -642,7 +651,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAHA8AAAJNU0Z0AUkBTAIBAQoB - AAGgAQEBoAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEwAwABAQEAAQgG + AAGoAQEBqAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEwAwABAQEAAQgG AAEMGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMB AAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQAB kwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwAC diff --git a/VSLauncherX/Resources.Designer.cs b/VSLauncherX/Resources.Designer.cs index 096aedc..59e5731 100644 --- a/VSLauncherX/Resources.Designer.cs +++ b/VSLauncherX/Resources.Designer.cs @@ -230,6 +230,16 @@ internal static System.Drawing.Icon DefaultIcon { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Download { + get { + object obj = ResourceManager.GetObject("Download", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// @@ -320,6 +330,16 @@ internal static System.Drawing.Bitmap ImportVS { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ImportVS1 { + get { + object obj = ResourceManager.GetObject("ImportVS1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -330,6 +350,16 @@ internal static System.Drawing.Bitmap Information { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Installer { + get { + object obj = ResourceManager.GetObject("Installer", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/VSLauncherX/Resources.resx b/VSLauncherX/Resources.resx index c5ead90..61db185 100644 --- a/VSLauncherX/Resources.resx +++ b/VSLauncherX/Resources.resx @@ -121,14 +121,11 @@ Resources\Images\CPPProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\folder.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Resources\webproj.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\Images\VBProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\blazor.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Resources\Images\ImportVS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -154,12 +151,18 @@ Resources\Images24\Cancel_24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images\GitClean2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + .\Resources\Images\AddFolder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Resources\Images32\Warning32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images\OpenProjectFolder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Resources\Images24\Check_24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -172,6 +175,12 @@ Resources\Images\WebProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + .\Resources\Images\AddFavorite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Images\GitDirty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + .\Resources\Images\ConnectArrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -181,8 +190,8 @@ .\Resources\Images\FolderClosedBlue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\blazor.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images\GitClean.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a .\Resources\Images\Add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -190,14 +199,17 @@ Resources\Images\CSProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\AppLogo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Resources\Images\RunUpdate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\AppLogo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\AppLogo2.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - .\Resources\Images\AddFavorite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\folder.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Resources\vcxproj.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -205,9 +217,6 @@ .\Resources\Images\ArrowUpEnd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\Images\TSProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Resources\Images\ApplicationGroup.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -217,8 +226,8 @@ .\Resources\Images\ArrowDownEnd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\Images\OpenProjectFolder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images\TSProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Resources\Images\FSProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -232,6 +241,9 @@ .\Resources\Images\Run.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images\VBProjectNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + .\Resources\Images\FolderOpenBlue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -241,19 +253,16 @@ Resources\Images32\Information.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\AppLogo2.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\Images\GitClean.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images\GitDirty2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\Images\GitDirty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images24\ImportVS.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\Images\GitClean2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images24\download.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Resources\Images\GitDirty2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\Images24\Installer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/VSLauncherX/Resources/AppLogo.jpg b/VSLauncherX/Resources/AppLogo.jpg new file mode 100644 index 0000000..995f22e Binary files /dev/null and b/VSLauncherX/Resources/AppLogo.jpg differ diff --git a/VSLauncherX/Resources/Images24/Installer.gfie b/VSLauncherX/Resources/Images24/Installer.gfie new file mode 100644 index 0000000..3df049b Binary files /dev/null and b/VSLauncherX/Resources/Images24/Installer.gfie differ diff --git a/VSLauncherX/Resources/Images24/Installer.png b/VSLauncherX/Resources/Images24/Installer.png new file mode 100644 index 0000000..71f9381 Binary files /dev/null and b/VSLauncherX/Resources/Images24/Installer.png differ diff --git a/VSLauncherX/Resources/Images24/download.png b/VSLauncherX/Resources/Images24/download.png new file mode 100644 index 0000000..ea09b86 Binary files /dev/null and b/VSLauncherX/Resources/Images24/download.png differ diff --git a/docs/Settings-sample.jpg b/docs/Settings-sample.jpg index d2c522f..b2effb6 100644 Binary files a/docs/Settings-sample.jpg and b/docs/Settings-sample.jpg differ diff --git a/docs/beforeafter-sample.jpg b/docs/beforeafter-sample.jpg new file mode 100644 index 0000000..778e9b3 Binary files /dev/null and b/docs/beforeafter-sample.jpg differ