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