From 263c62069df0f154001915cca00d6d4926f2fbb5 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 2 Mar 2021 03:01:31 -0800 Subject: Version the extension cache folders Resolves wixtoolset/issues#6184 --- .../ExtensibilityServices/ExtensionManager.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/WixToolset.Core/ExtensibilityServices/ExtensionManager.cs b/src/WixToolset.Core/ExtensibilityServices/ExtensionManager.cs index c23c8383..31184c33 100644 --- a/src/WixToolset.Core/ExtensibilityServices/ExtensionManager.cs +++ b/src/WixToolset.Core/ExtensibilityServices/ExtensionManager.cs @@ -13,8 +13,12 @@ namespace WixToolset.Core.ExtensibilityServices internal class ExtensionManager : IExtensionManager { - private List extensionFactories = new List(); - private Dictionary> loadedExtensionsByType = new Dictionary>(); + private const string UserWixFolderName = ".wix4"; + private const string MachineWixFolderName = "WixToolset4"; + private const string ExtensionsFolderName = "extensions"; + + private readonly List extensionFactories = new List(); + private readonly Dictionary> loadedExtensionsByType = new Dictionary>(); public ExtensionManager(IWixToolsetCoreServiceProvider serviceProvider) { @@ -123,14 +127,14 @@ namespace WixToolset.Core.ExtensibilityServices private IEnumerable CacheLocations() { - var path = Path.Combine(Environment.CurrentDirectory, ".wix", "extensions"); + var path = Path.Combine(Environment.CurrentDirectory, UserWixFolderName, ExtensionsFolderName); if (Directory.Exists(path)) { yield return path; } path = Environment.GetEnvironmentVariable("WIX_EXTENSIONS") ?? Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); - path = Path.Combine(path, ".wix", "extensions"); + path = Path.Combine(path, UserWixFolderName, ExtensionsFolderName); if (Directory.Exists(path)) { yield return path; @@ -138,20 +142,20 @@ namespace WixToolset.Core.ExtensibilityServices if (Environment.Is64BitOperatingSystem) { - path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles), @"WixToolset\extensions\"); + path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles), MachineWixFolderName, ExtensionsFolderName); if (Directory.Exists(path)) { yield return path; } } - path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFilesX86), @"WixToolset\extensions\"); + path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFilesX86), MachineWixFolderName, ExtensionsFolderName); if (Directory.Exists(path)) { yield return path; } - path = Path.Combine(Path.GetDirectoryName(new Uri(Assembly.GetCallingAssembly().CodeBase).LocalPath), @"extensions\"); + path = Path.Combine(Path.GetDirectoryName(new Uri(Assembly.GetCallingAssembly().CodeBase).LocalPath), ExtensionsFolderName); if (Directory.Exists(path)) { yield return path; -- cgit v1.2.3-55-g6feb