From 9949e351e152a929da696ef2f0a1f8b1668e83fa Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 12 Jan 2020 15:56:50 +0200 Subject: Merged Beta+ fixes to master. --- .../Tango.AdvancedInstaller/InstallerBuilder.cs | 27 +++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'Software/Visual_Studio/Tango.AdvancedInstaller') diff --git a/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs b/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs index ed52aeb05..2beb849ea 100644 --- a/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs +++ b/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using Tango.Core.Components; @@ -9,13 +11,32 @@ namespace Tango.AdvancedInstaller { public class InstallerBuilder { + private const string ADVANCED_INSTALLER_BASE_FOLDER = @"C:\Program Files (x86)\Caphyon"; + public String AdvancedInstallerPath { get; set; } public String ProjectFile { get; private set; } private InstallerBuilder() { - AdvancedInstallerPath = @"C:\Program Files (x86)\Caphyon\Advanced Installer 15.6\bin\x86\AdvancedInstaller.com"; + double latestVersion = 0.0; + + //Extract the latest advanced installer version... + foreach (var folder in Directory.GetDirectories(ADVANCED_INSTALLER_BASE_FOLDER)) + { + try + { + var versionString = Regex.Match(Path.GetFileName(folder), @"\d+\.*\d+").Value; + double version = double.Parse(versionString); + if (version > latestVersion) + { + latestVersion = version; + } + } + catch { } + } + + AdvancedInstallerPath = $@"{ADVANCED_INSTALLER_BASE_FOLDER}\Advanced Installer {latestVersion}\bin\x86\AdvancedInstaller.com"; } public InstallerBuilder(String projectFile) : this() @@ -72,7 +93,7 @@ namespace Tango.AdvancedInstaller public Task Uninstall() { - return Task.Factory.StartNew(() => + return Task.Factory.StartNew(() => { String productName = GetProperty(ProjectProperty.ProductName).Result; CmdCommand command = new CmdCommand("wmic", $"product where name=\"{productName}\" call uninstall /nointeractive"); @@ -83,7 +104,7 @@ namespace Tango.AdvancedInstaller public Task IsInstalled() { - return Task.Factory.StartNew(() => + return Task.Factory.StartNew(() => { String productName = GetProperty(ProjectProperty.ProductName).Result; CmdCommand command = new CmdCommand("wmic", $"product get name"); -- cgit v1.3.1