Installer: old to new update #9 - upd: directory search priority: previous installation directory, regular directories, program files.

This commit is contained in:
McMak 2015-05-22 10:38:42 +03:00
parent 4526a6b8d9
commit 276a106dc9

View file

@ -126,17 +126,10 @@ namespace WebsitePanel.WIXInstaller
}; };
Func<IEnumerable<string>, string> FindMainConfig = (IEnumerable<string> Dirs) => Func<IEnumerable<string>, string> FindMainConfig = (IEnumerable<string> Dirs) =>
{ {
// Looking into platform specific Program Files. // Looking into directories with next priority:
{ // Previous installation directory and her backup, "WebsitePanel" directories on fixed drives and their backups.
var InstallerMainCfg = "WebsitePanel.Installer.exe.config"; // The last chance is an update from an installation based on previous installer version that installed to "Program Files".
var InstallerName = "WebsitePanel Installer"; // Regular directories.
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.
foreach (var Dir in Dirs) foreach (var Dir in Dirs)
{ {
var Result = Path.Combine(Dir, BackupRestore.MainConfig); 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; return null;
}; };