From 728d82664323ccc913626496400c27949a1bdf5c Mon Sep 17 00:00:00 2001
From: Sparronator9999 <86388887+Sparronator9999@users.noreply.github.com>
Date: Mon, 9 Dec 2024 21:04:03 +1100
Subject: [PATCH] About dialog overhaul + new version string system
- Add brand-new About dialog
- Rename "SNAPSHOT" builds to "dev"
- Only show commit hash in version string if running a dev build, otherwise just show the program version, and beta/RC/etc. suffix if set
- Remove unused Strings.cs function
---
YAMDCC.Config/YAMDCC.Config.csproj | 2 +-
.../Dialogs/VersionDialog.Designer.cs | 262 ++++++++++++++++++
YAMDCC.ConfigEditor/Dialogs/VersionDialog.cs | 68 +++++
.../Dialogs/VersionDialog.resx | 221 +++++++++++++++
YAMDCC.ConfigEditor/MainWindow.cs | 5 +-
YAMDCC.ConfigEditor/Strings.cs | 12 -
YAMDCC.ConfigEditor/Strings.resx | 25 +-
YAMDCC.ConfigEditor/Utils.cs | 63 ++++-
.../YAMDCC.ConfigEditor.csproj | 2 +-
YAMDCC.ECAccess/YAMDCC.ECAccess.csproj | 2 +-
YAMDCC.IPC/YAMDCC.IPC.csproj | 3 +-
YAMDCC.Logs/YAMDCC.Logs.csproj | 2 +-
YAMDCC.Service/YAMDCC.Service.csproj | 2 +-
13 files changed, 626 insertions(+), 43 deletions(-)
create mode 100644 YAMDCC.ConfigEditor/Dialogs/VersionDialog.Designer.cs
create mode 100644 YAMDCC.ConfigEditor/Dialogs/VersionDialog.cs
create mode 100644 YAMDCC.ConfigEditor/Dialogs/VersionDialog.resx
diff --git a/YAMDCC.Config/YAMDCC.Config.csproj b/YAMDCC.Config/YAMDCC.Config.csproj
index d57050e..a831e74 100644
--- a/YAMDCC.Config/YAMDCC.Config.csproj
+++ b/YAMDCC.Config/YAMDCC.Config.csproj
@@ -13,7 +13,7 @@
net48
YAMDCC config library
0.6.9.420
- SNAPSHOT
+ dev
none
diff --git a/YAMDCC.ConfigEditor/Dialogs/VersionDialog.Designer.cs b/YAMDCC.ConfigEditor/Dialogs/VersionDialog.Designer.cs
new file mode 100644
index 0000000..9372bc4
--- /dev/null
+++ b/YAMDCC.ConfigEditor/Dialogs/VersionDialog.Designer.cs
@@ -0,0 +1,262 @@
+// This file is part of YAMDCC (Yet Another MSI Dragon Center Clone).
+// Copyright © Sparronator9999 2023-2024.
+//
+// YAMDCC is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation, either version 3 of the License, or (at your option)
+// any later version.
+//
+// YAMDCC is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+// more details.
+//
+// You should have received a copy of the GNU General Public License along with
+// YAMDCC. If not, see .
+
+namespace YAMDCC.ConfigEditor.Dialogs
+{
+ partial class VersionDialog
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.Windows.Forms.PictureBox picLogo;
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VersionDialog));
+ System.Windows.Forms.Label lblTitle;
+ System.Windows.Forms.Label lblSubtitle;
+ System.Windows.Forms.TableLayoutPanel tblMain;
+ System.Windows.Forms.FlowLayoutPanel flwLinks;
+ System.Windows.Forms.Button btnLicense;
+ System.Windows.Forms.Button btnSource;
+ System.Windows.Forms.Button btnFAQ;
+ System.Windows.Forms.Button btnIssues;
+ this.lblVersion = new System.Windows.Forms.Label();
+ this.lblCopyright = new System.Windows.Forms.Label();
+ this.lblDesc = new System.Windows.Forms.Label();
+ this.lblRevision = new System.Windows.Forms.Label();
+ picLogo = new System.Windows.Forms.PictureBox();
+ lblTitle = new System.Windows.Forms.Label();
+ lblSubtitle = new System.Windows.Forms.Label();
+ tblMain = new System.Windows.Forms.TableLayoutPanel();
+ flwLinks = new System.Windows.Forms.FlowLayoutPanel();
+ btnLicense = new System.Windows.Forms.Button();
+ btnSource = new System.Windows.Forms.Button();
+ btnFAQ = new System.Windows.Forms.Button();
+ btnIssues = new System.Windows.Forms.Button();
+ ((System.ComponentModel.ISupportInitialize)(picLogo)).BeginInit();
+ tblMain.SuspendLayout();
+ flwLinks.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // picLogo
+ //
+ picLogo.Anchor = System.Windows.Forms.AnchorStyles.Top;
+ picLogo.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("picLogo.BackgroundImage")));
+ picLogo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ picLogo.Location = new System.Drawing.Point(6, 6);
+ picLogo.Name = "picLogo";
+ tblMain.SetRowSpan(picLogo, 6);
+ picLogo.Size = new System.Drawing.Size(128, 128);
+ picLogo.TabIndex = 0;
+ picLogo.TabStop = false;
+ //
+ // lblTitle
+ //
+ lblTitle.AutoSize = true;
+ lblTitle.Font = new System.Drawing.Font("Segoe UI", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ lblTitle.Location = new System.Drawing.Point(140, 3);
+ lblTitle.Name = "lblTitle";
+ lblTitle.Size = new System.Drawing.Size(114, 32);
+ lblTitle.TabIndex = 1;
+ lblTitle.Text = "YAMDCC";
+ //
+ // lblSubtitle
+ //
+ lblSubtitle.AutoSize = true;
+ lblSubtitle.Location = new System.Drawing.Point(140, 35);
+ lblSubtitle.Margin = new System.Windows.Forms.Padding(3, 0, 3, 3);
+ lblSubtitle.Name = "lblSubtitle";
+ lblSubtitle.Size = new System.Drawing.Size(214, 15);
+ lblSubtitle.TabIndex = 2;
+ lblSubtitle.Text = "(Yet Another MSI Dragon Center Clone)";
+ //
+ // lblVersion
+ //
+ this.lblVersion.AutoSize = true;
+ this.lblVersion.Location = new System.Drawing.Point(140, 56);
+ this.lblVersion.Margin = new System.Windows.Forms.Padding(3);
+ this.lblVersion.Name = "lblVersion";
+ this.lblVersion.Size = new System.Drawing.Size(48, 15);
+ this.lblVersion.TabIndex = 3;
+ this.lblVersion.Text = "Version ";
+ //
+ // tblMain
+ //
+ tblMain.AutoSize = true;
+ tblMain.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ tblMain.ColumnCount = 2;
+ tblMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ tblMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ tblMain.Controls.Add(picLogo, 0, 0);
+ tblMain.Controls.Add(lblTitle, 1, 0);
+ tblMain.Controls.Add(lblSubtitle, 1, 1);
+ tblMain.Controls.Add(this.lblVersion, 1, 2);
+ tblMain.Controls.Add(this.lblCopyright, 0, 6);
+ tblMain.Controls.Add(this.lblDesc, 1, 4);
+ tblMain.Controls.Add(flwLinks, 1, 5);
+ tblMain.Controls.Add(this.lblRevision, 1, 3);
+ tblMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ tblMain.Location = new System.Drawing.Point(0, 0);
+ tblMain.Name = "tblMain";
+ tblMain.Padding = new System.Windows.Forms.Padding(3);
+ tblMain.RowCount = 7;
+ tblMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ tblMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ tblMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ tblMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ tblMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ tblMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ tblMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ tblMain.Size = new System.Drawing.Size(524, 181);
+ tblMain.TabIndex = 5;
+ //
+ // lblCopyright
+ //
+ this.lblCopyright.Anchor = System.Windows.Forms.AnchorStyles.Top;
+ this.lblCopyright.AutoSize = true;
+ tblMain.SetColumnSpan(this.lblCopyright, 2);
+ this.lblCopyright.Location = new System.Drawing.Point(232, 151);
+ this.lblCopyright.Name = "lblCopyright";
+ this.lblCopyright.Size = new System.Drawing.Size(60, 15);
+ this.lblCopyright.TabIndex = 4;
+ this.lblCopyright.Text = "Copyright";
+ this.lblCopyright.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+ //
+ // lblDesc
+ //
+ this.lblDesc.AutoSize = true;
+ this.lblDesc.Location = new System.Drawing.Point(140, 98);
+ this.lblDesc.Margin = new System.Windows.Forms.Padding(3);
+ this.lblDesc.Name = "lblDesc";
+ this.lblDesc.Size = new System.Drawing.Size(67, 15);
+ this.lblDesc.TabIndex = 5;
+ this.lblDesc.Text = "Description";
+ //
+ // flwLinks
+ //
+ flwLinks.AutoSize = true;
+ flwLinks.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ flwLinks.Controls.Add(btnLicense);
+ flwLinks.Controls.Add(btnSource);
+ flwLinks.Controls.Add(btnFAQ);
+ flwLinks.Controls.Add(btnIssues);
+ flwLinks.Location = new System.Drawing.Point(140, 119);
+ flwLinks.Name = "flwLinks";
+ flwLinks.Size = new System.Drawing.Size(324, 29);
+ flwLinks.TabIndex = 6;
+ //
+ // btnLicense
+ //
+ btnLicense.Location = new System.Drawing.Point(3, 3);
+ btnLicense.Name = "btnLicense";
+ btnLicense.Size = new System.Drawing.Size(75, 23);
+ btnLicense.TabIndex = 0;
+ btnLicense.Text = "License";
+ btnLicense.UseVisualStyleBackColor = true;
+ btnLicense.Click += new System.EventHandler(this.btnLicense_Click);
+ //
+ // btnSource
+ //
+ btnSource.Location = new System.Drawing.Point(84, 3);
+ btnSource.Name = "btnSource";
+ btnSource.Size = new System.Drawing.Size(75, 23);
+ btnSource.TabIndex = 1;
+ btnSource.Text = "Source";
+ btnSource.UseVisualStyleBackColor = true;
+ btnSource.Click += new System.EventHandler(this.btnSource_Click);
+ //
+ // btnFAQ
+ //
+ btnFAQ.Location = new System.Drawing.Point(165, 3);
+ btnFAQ.Name = "btnFAQ";
+ btnFAQ.Size = new System.Drawing.Size(75, 23);
+ btnFAQ.TabIndex = 2;
+ btnFAQ.Text = "FAQ";
+ btnFAQ.UseVisualStyleBackColor = true;
+ btnFAQ.Click += new System.EventHandler(this.btnFAQ_Click);
+ //
+ // btnIssues
+ //
+ btnIssues.Location = new System.Drawing.Point(246, 3);
+ btnIssues.Name = "btnIssues";
+ btnIssues.Size = new System.Drawing.Size(75, 23);
+ btnIssues.TabIndex = 3;
+ btnIssues.Text = "Issues";
+ btnIssues.UseVisualStyleBackColor = true;
+ btnIssues.Click += new System.EventHandler(this.btnIssues_Click);
+ //
+ // lblRevision
+ //
+ this.lblRevision.AutoSize = true;
+ this.lblRevision.Location = new System.Drawing.Point(140, 77);
+ this.lblRevision.Margin = new System.Windows.Forms.Padding(3);
+ this.lblRevision.Name = "lblRevision";
+ this.lblRevision.Size = new System.Drawing.Size(83, 15);
+ this.lblRevision.TabIndex = 7;
+ this.lblRevision.Text = "Revision (Git): ";
+ //
+ // VersionDialog
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ this.AutoSize = true;
+ this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.ClientSize = new System.Drawing.Size(524, 181);
+ this.Controls.Add(tblMain);
+ this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "VersionDialog";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "About YAMDCC";
+ ((System.ComponentModel.ISupportInitialize)(picLogo)).EndInit();
+ tblMain.ResumeLayout(false);
+ tblMain.PerformLayout();
+ flwLinks.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Label lblVersion;
+ private System.Windows.Forms.Label lblDesc;
+ private System.Windows.Forms.Label lblCopyright;
+ private System.Windows.Forms.Label lblRevision;
+ }
+}
diff --git a/YAMDCC.ConfigEditor/Dialogs/VersionDialog.cs b/YAMDCC.ConfigEditor/Dialogs/VersionDialog.cs
new file mode 100644
index 0000000..949ccc8
--- /dev/null
+++ b/YAMDCC.ConfigEditor/Dialogs/VersionDialog.cs
@@ -0,0 +1,68 @@
+// This file is part of YAMDCC (Yet Another MSI Dragon Center Clone).
+// Copyright © Sparronator9999 2023-2024.
+//
+// YAMDCC is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation, either version 3 of the License, or (at your option)
+// any later version.
+//
+// YAMDCC is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+// more details.
+//
+// You should have received a copy of the GNU General Public License along with
+// YAMDCC. If not, see .
+
+using System;
+using System.Drawing;
+using System.Diagnostics;
+using System.Reflection;
+using System.Windows.Forms;
+
+namespace YAMDCC.ConfigEditor.Dialogs
+{
+ internal sealed partial class VersionDialog : Form
+ {
+ private static readonly string SourcePrefix = "https://github.com/Sparronator9999/YAMDCC";
+
+ public VersionDialog()
+ {
+ InitializeComponent();
+ lblDesc.Text = Strings.GetString("dlgAboutDesc");
+ lblCopyright.Text = Strings.GetString("dlgAboutCopyright");
+ lblVersion.Text += Utils.GetVerString();
+
+ string revision = Utils.GetRevision();
+
+ if (string.IsNullOrEmpty(revision))
+ {
+ lblRevision.Hide();
+ }
+ else
+ {
+ lblRevision.Text += revision;
+ }
+ }
+
+ private void btnLicense_Click(object sender, EventArgs e)
+ {
+ Process.Start("https://www.gnu.org/licenses/gpl-3.0.html#license-text");
+ }
+
+ private void btnSource_Click(object sender, EventArgs e)
+ {
+ Process.Start(SourcePrefix);
+ }
+
+ private void btnFAQ_Click(object sender, EventArgs e)
+ {
+ Process.Start($"{SourcePrefix}#faq");
+ }
+
+ private void btnIssues_Click(object sender, EventArgs e)
+ {
+ Process.Start($"{SourcePrefix}/issues");
+ }
+ }
+}
diff --git a/YAMDCC.ConfigEditor/Dialogs/VersionDialog.resx b/YAMDCC.ConfigEditor/Dialogs/VersionDialog.resx
new file mode 100644
index 0000000..97ab25d
--- /dev/null
+++ b/YAMDCC.ConfigEditor/Dialogs/VersionDialog.resx
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ False
+
+
+
+
+ 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
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
\ No newline at end of file
diff --git a/YAMDCC.ConfigEditor/MainWindow.cs b/YAMDCC.ConfigEditor/MainWindow.cs
index 6f1c7e7..24fd8b3 100644
--- a/YAMDCC.ConfigEditor/MainWindow.cs
+++ b/YAMDCC.ConfigEditor/MainWindow.cs
@@ -63,7 +63,7 @@ public MainWindow()
Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);
// set title text to include program version
- Text = $"YAMDCC config editor - v{Utils.GetShortVerString()}";
+ Text = $"YAMDCC config editor - v{Utils.GetVerString()}";
// set literally every tooltip
tsiLoadConf.ToolTipText = Strings.GetString("ttLoadConf");
@@ -542,8 +542,7 @@ private void tsiUninstall_Click(object sender, EventArgs e)
#region Help
private void tsiAbout_Click(object sender, EventArgs e) =>
- MessageBox.Show(Strings.GetString("dlgAbout", Utils.GetShortVerString()), "About",
- MessageBoxButtons.OK, MessageBoxIcon.Information);
+ new VersionDialog().ShowDialog();
private void tsiSrc_Click(object sender, EventArgs e) =>
// TODO: add GitHub project link
diff --git a/YAMDCC.ConfigEditor/Strings.cs b/YAMDCC.ConfigEditor/Strings.cs
index 60ca727..6eca56f 100644
--- a/YAMDCC.ConfigEditor/Strings.cs
+++ b/YAMDCC.ConfigEditor/Strings.cs
@@ -70,17 +70,5 @@ public static string GetString(string name, object arg0)
? null
: string.Format(CultureInfo.InvariantCulture, temp, arg0);
}
-
- ///
- ///
- /// The objects to format the string with.
- ///
- public static string GetString(string name, params object[] args)
- {
- string temp = GetString(name);
- return temp is null
- ? null
- : string.Format(CultureInfo.InvariantCulture, temp, args);
- }
}
}
diff --git a/YAMDCC.ConfigEditor/Strings.resx b/YAMDCC.ConfigEditor/Strings.resx
index f9c145e..6986e28 100644
--- a/YAMDCC.ConfigEditor/Strings.resx
+++ b/YAMDCC.ConfigEditor/Strings.resx
@@ -117,17 +117,8 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- YAMDCC - Yet Another MSI Dragon Center Clone
-Version {0}
-A fast, lightweight alternative to MSI Center for MSI laptops, written in C#.
-Copyright © Sparronator9999, 2023-2024
-
-This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with this program. If not, visit <https://www.gnu.org/licenses/gpl-3.0.html> for a copy.
+
+ A fast, lightweight alternative to MSI Center for MSI laptops, written in C#.
Please enter a name for your new fan profile:
@@ -261,10 +252,8 @@ A dialog will open, in which you can enter the fan profile's new name.
The fan profile to adjust for the current fan.
- Revert the currently loaded config to when
-it was first loaded using "Load Config",
-or saved using "Save Config", whichever
-came last.
+ Revert the currently loaded config to when it was first loaded
+using "Load Config", or saved using "Save Config", whichever came last.
Saves the currently loaded config to an XML file.
@@ -347,4 +336,8 @@ Make sure to save your config (using the "Save config" button)!
Cancel and continue loading YAMDCC?
-
\ No newline at end of file
+
+ Copyright © Sparronator9999 (and contributors), 2023-2024.
+YAMDCC and its authors are not affiliated with Micro-Star International Co., Ltd. in any way, shape, or form.
+
+
diff --git a/YAMDCC.ConfigEditor/Utils.cs b/YAMDCC.ConfigEditor/Utils.cs
index a5f0e37..3f39f33 100644
--- a/YAMDCC.ConfigEditor/Utils.cs
+++ b/YAMDCC.ConfigEditor/Utils.cs
@@ -14,6 +14,7 @@
// You should have received a copy of the GNU General Public License along with
// YAMDCC. If not, see .
+using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
@@ -43,16 +44,66 @@ public static DialogResult ShowError(string message)
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
- public static string GetShortVerString()
+ public static string GetVerString()
+ {
+ // format: X.Y.Z-SUFFIX[.W]+REVISION,
+ // where W is a beta/release candidate version if applicable
+ string prodVer = Application.ProductVersion;
+
+ string suffix;
+ if (prodVer.Contains("-"))
+ {
+ // remove the version number (SUFFIX[.W]+REVISION at this point):
+ suffix = prodVer.Remove(0, prodVer.IndexOf('-') + 1);
+
+ // remove Git hash, if it exists (for "dev" detection)
+ if (suffix.Contains("+"))
+ {
+ suffix = suffix.Remove(suffix.IndexOf('+'));
+ }
+ }
+ else
+ {
+ // suffix probably doesn't exist...
+ suffix = string.Empty;
+ }
+
+ switch (suffix.ToLowerInvariant())
+ {
+ case "release":
+ // only show the version number (e.g. X.Y.Z):
+ return prodVer.Remove(prodVer.IndexOf('-'));
+ case "dev":
+ return prodVer.Contains("+")
+ // probably a snapshot release (e.g. X.Y.Z-SNAPSHOT+REVISION);
+ // show shortened Git commit hash if it exists:
+ ? prodVer.Remove(prodVer.IndexOf('+') + 8)
+ // Return the product version if not in expected format
+ : prodVer;
+ default: // beta, RC, etc.
+ return prodVer.Contains(".") && prodVer.Contains("+")
+ // Beta releases should be in format X.Y.Z-beta.W+REVISION.
+ // Remove the revision (i.e. only show X.Y.Z-beta.W):
+ ? prodVer.Remove(prodVer.IndexOf('+'))
+ // Return the product version if not in expected format
+ : prodVer;
+ }
+ }
+
+ ///
+ /// Gets the Git revision of this program, if available.
+ ///
+ ///
+ /// The Git hash of the program version if available,
+ /// otherwise .
+ ///
+ public static string GetRevision()
{
string prodVer = Application.ProductVersion;
return prodVer.Contains("+")
- // only show shortened Git commit hash if it exists
- // (plus(+) symbol + 7 characters)
- ? prodVer.Remove(prodVer.IndexOf('+') + 8)
- // otherwise just return the product version
- : prodVer;
+ ? prodVer.Remove(0, prodVer.IndexOf('+') + 1)
+ : string.Empty;
}
///
diff --git a/YAMDCC.ConfigEditor/YAMDCC.ConfigEditor.csproj b/YAMDCC.ConfigEditor/YAMDCC.ConfigEditor.csproj
index 8c10ce4..cf182f4 100644
--- a/YAMDCC.ConfigEditor/YAMDCC.ConfigEditor.csproj
+++ b/YAMDCC.ConfigEditor/YAMDCC.ConfigEditor.csproj
@@ -21,7 +21,7 @@
YAMDCC configuration utility
true
0.6.9.420
- SNAPSHOT
+ dev
none
diff --git a/YAMDCC.ECAccess/YAMDCC.ECAccess.csproj b/YAMDCC.ECAccess/YAMDCC.ECAccess.csproj
index 4974c23..8bd932d 100644
--- a/YAMDCC.ECAccess/YAMDCC.ECAccess.csproj
+++ b/YAMDCC.ECAccess/YAMDCC.ECAccess.csproj
@@ -14,7 +14,7 @@
net48
YAMDCC EC access library
0.6.9.420
- SNAPSHOT
+ dev
none
diff --git a/YAMDCC.IPC/YAMDCC.IPC.csproj b/YAMDCC.IPC/YAMDCC.IPC.csproj
index 0540c4d..b546187 100644
--- a/YAMDCC.IPC/YAMDCC.IPC.csproj
+++ b/YAMDCC.IPC/YAMDCC.IPC.csproj
@@ -12,7 +12,8 @@
win7-x64;win7-x86;win-x64;win-x86
net48
Named Pipe Wrapper library
- 2.0.0.0
+ 2.0.1.0
+ release
none
diff --git a/YAMDCC.Logs/YAMDCC.Logs.csproj b/YAMDCC.Logs/YAMDCC.Logs.csproj
index 9745a15..7ff8946 100644
--- a/YAMDCC.Logs/YAMDCC.Logs.csproj
+++ b/YAMDCC.Logs/YAMDCC.Logs.csproj
@@ -13,7 +13,7 @@
net48
YAMDCC logging library
0.6.9.420
- SNAPSHOT
+ dev
none
diff --git a/YAMDCC.Service/YAMDCC.Service.csproj b/YAMDCC.Service/YAMDCC.Service.csproj
index f715657..79460e4 100644
--- a/YAMDCC.Service/YAMDCC.Service.csproj
+++ b/YAMDCC.Service/YAMDCC.Service.csproj
@@ -15,7 +15,7 @@
net48
YAMDCC helper service
0.6.9.420
- SNAPSHOT
+ dev
app.manifest