@joebigelow / wix / commits / b91ef859

Fix `wix extension list` always listing extensions as damaged

Fixes 7084

Rob Mensching committed Dec 11, 2022 at 17:00 UTC b91ef8598fd8b16329b39b449555b8d1c00a0d06
2 files changed +10 -7
src/wix/WixToolset.Core.ExtensionCache/ExtensionCacheManager.cs
+9 -7
@@ -88,7 +88,7 @@ namespace WixToolset.Core.ExtensionCache
88 }
89 else if (!String.IsNullOrEmpty(extensionVersion)) // looking for an explicit version of an extension.
90 {
91 - var present = ExtensionFileExists(cacheFolder, extensionId, extensionVersion);
91 + var present = this.ExtensionFileExists(cacheFolder, extensionId, extensionVersion);
92 found.Add(new CachedExtension(extensionId, extensionVersion, !present));
93 }
94 else // looking for all versions of an extension or all versions of all extensions.
@@ -122,7 +122,7 @@ namespace WixToolset.Core.ExtensionCache
122 continue;
123 }
124
125 - var present = ExtensionFileExists(cacheFolder, foundExtensionId, foundExtensionVersion);
125 + var present = this.ExtensionFileExists(cacheFolder, foundExtensionId, foundExtensionVersion);
126 found.Add(new CachedExtension(foundExtensionId, foundExtensionVersion, !present));
127 }
128 }
@@ -259,20 +259,22 @@ namespace WixToolset.Core.ExtensionCache
259 return (extensionId, extensionVersion);
260 }
261
262 - private static bool ExtensionFileExists(string baseFolder, string extensionId, string extensionVersion)
262 + private bool ExtensionFileExists(string baseFolder, string extensionId, string extensionVersion)
263 {
264 - var toolsFolder = Path.Combine(baseFolder, extensionId, extensionVersion, "tools");
265 - if (!Directory.Exists(toolsFolder))
264 + var packageRootFolderName = this.ExtensionManager.GetExtensionPackageRootFolderName();
265 +
266 + var extensionFolder = Path.Combine(baseFolder, extensionId, extensionVersion, packageRootFolderName);
267 + if (!Directory.Exists(extensionFolder))
268 {
269 return false;
270 }
271
270 - var extensionAssembly = Path.Combine(toolsFolder, extensionId + ".dll");
272 + var extensionAssembly = Path.Combine(extensionFolder, extensionId + ".dll");
273
274 var present = File.Exists(extensionAssembly);
275 if (!present)
276 {
275 - extensionAssembly = Path.Combine(toolsFolder, extensionId + ".exe");
277 + extensionAssembly = Path.Combine(extensionFolder, extensionId + ".exe");
278 present = File.Exists(extensionAssembly);
279 }
280
src/wix/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
+1
@@ -201,6 +201,7 @@ namespace WixToolsetTest.CoreIntegration
201 result.AssertSuccess();
202 var output = result.Messages.Select(m => m.ToString()).Single();
203 Assert.StartsWith("WixToolset.UI.wixext 4.", output);
204 + Assert.DoesNotContain("damaged", output);
205
206 result = WixRunner.Execute(new[]
207 {