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
{