From 276a106dc9342400b0698afd7a2e5b3e70b9cb07 Mon Sep 17 00:00:00 2001 From: McMak Date: Fri, 22 May 2015 10:38:42 +0300 Subject: [PATCH] Installer: old to new update #9 - upd: directory search priority: previous installation directory, regular directories, program files. --- .../WebsitePanel.WIXInstaller/CustomAction.cs | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.WIXInstaller/CustomAction.cs b/WebsitePanel.Installer/Sources/WebsitePanel.WIXInstaller/CustomAction.cs index 70cffceb..f5f58998 100644 --- a/WebsitePanel.Installer/Sources/WebsitePanel.WIXInstaller/CustomAction.cs +++ b/WebsitePanel.Installer/Sources/WebsitePanel.WIXInstaller/CustomAction.cs @@ -126,17 +126,10 @@ namespace WebsitePanel.WIXInstaller }; Func, string> FindMainConfig = (IEnumerable Dirs) => { - // Looking into platform specific Program Files. - { - var InstallerMainCfg = "WebsitePanel.Installer.exe.config"; - var InstallerName = "WebsitePanel Installer"; - var PFolderType = Environment.Is64BitOperatingSystem ? Environment.SpecialFolder.ProgramFilesX86 : Environment.SpecialFolder.ProgramFiles; - var PFiles = Environment.GetFolderPath(PFolderType); - var Result = Path.Combine(PFiles, InstallerName, InstallerMainCfg); - if (HaveInstalledComponents(Result)) - return Result; - } - // Looking into specific directories. + // Looking into directories with next priority: + // Previous installation directory and her backup, "WebsitePanel" directories on fixed drives and their backups. + // The last chance is an update from an installation based on previous installer version that installed to "Program Files". + // Regular directories. foreach (var Dir in Dirs) { var Result = Path.Combine(Dir, BackupRestore.MainConfig); @@ -155,6 +148,16 @@ namespace WebsitePanel.WIXInstaller } } } + // Looking into platform specific Program Files. + { + var InstallerMainCfg = "WebsitePanel.Installer.exe.config"; + var InstallerName = "WebsitePanel Installer"; + var PFolderType = Environment.Is64BitOperatingSystem ? Environment.SpecialFolder.ProgramFilesX86 : Environment.SpecialFolder.ProgramFiles; + var PFiles = Environment.GetFolderPath(PFolderType); + var Result = Path.Combine(PFiles, InstallerName, InstallerMainCfg); + if (HaveInstalledComponents(Result)) + return Result; + } return null; };