aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2022-12-11 17:00:28 -0800
committerRob Mensching <rob@firegiant.com>2022-12-11 18:21:46 -0800
commitb91ef8598fd8b16329b39b449555b8d1c00a0d06 (patch)
treed7aa7e25af2472282dd023faaaa15d16f28394dc
parent97c33e9919d9bc586d04f3524da60d2a304bef07 (diff)
downloadwix-b91ef8598fd8b16329b39b449555b8d1c00a0d06.tar.gz
wix-b91ef8598fd8b16329b39b449555b8d1c00a0d06.tar.bz2
wix-b91ef8598fd8b16329b39b449555b8d1c00a0d06.zip
Fix `wix extension list` always listing extensions as damaged
Fixes 7084
-rw-r--r--src/wix/WixToolset.Core.ExtensionCache/ExtensionCacheManager.cs16
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs1
2 files changed, 10 insertions, 7 deletions
diff --git a/src/wix/WixToolset.Core.ExtensionCache/ExtensionCacheManager.cs b/src/wix/WixToolset.Core.ExtensionCache/ExtensionCacheManager.cs
index 5706413f..7f5dc0ff 100644
--- a/src/wix/WixToolset.Core.ExtensionCache/ExtensionCacheManager.cs
+++ b/src/wix/WixToolset.Core.ExtensionCache/ExtensionCacheManager.cs
@@ -88,7 +88,7 @@ namespace WixToolset.Core.ExtensionCache
88 } 88 }
89 else if (!String.IsNullOrEmpty(extensionVersion)) // looking for an explicit version of an extension. 89 else if (!String.IsNullOrEmpty(extensionVersion)) // looking for an explicit version of an extension.
90 { 90 {
91 var present = ExtensionFileExists(cacheFolder, extensionId, extensionVersion); 91 var present = this.ExtensionFileExists(cacheFolder, extensionId, extensionVersion);
92 found.Add(new CachedExtension(extensionId, extensionVersion, !present)); 92 found.Add(new CachedExtension(extensionId, extensionVersion, !present));
93 } 93 }
94 else // looking for all versions of an extension or all versions of all extensions. 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; 122 continue;
123 } 123 }
124 124
125 var present = ExtensionFileExists(cacheFolder, foundExtensionId, foundExtensionVersion); 125 var present = this.ExtensionFileExists(cacheFolder, foundExtensionId, foundExtensionVersion);
126 found.Add(new CachedExtension(foundExtensionId, foundExtensionVersion, !present)); 126 found.Add(new CachedExtension(foundExtensionId, foundExtensionVersion, !present));
127 } 127 }
128 } 128 }
@@ -259,20 +259,22 @@ namespace WixToolset.Core.ExtensionCache
259 return (extensionId, extensionVersion); 259 return (extensionId, extensionVersion);
260 } 260 }
261 261
262 private static bool ExtensionFileExists(string baseFolder, string extensionId, string extensionVersion) 262 private bool ExtensionFileExists(string baseFolder, string extensionId, string extensionVersion)
263 { 263 {
264 var toolsFolder = Path.Combine(baseFolder, extensionId, extensionVersion, "tools"); 264 var packageRootFolderName = this.ExtensionManager.GetExtensionPackageRootFolderName();
265 if (!Directory.Exists(toolsFolder)) 265
266 var extensionFolder = Path.Combine(baseFolder, extensionId, extensionVersion, packageRootFolderName);
267 if (!Directory.Exists(extensionFolder))
266 { 268 {
267 return false; 269 return false;
268 } 270 }
269 271
270 var extensionAssembly = Path.Combine(toolsFolder, extensionId + ".dll"); 272 var extensionAssembly = Path.Combine(extensionFolder, extensionId + ".dll");
271 273
272 var present = File.Exists(extensionAssembly); 274 var present = File.Exists(extensionAssembly);
273 if (!present) 275 if (!present)
274 { 276 {
275 extensionAssembly = Path.Combine(toolsFolder, extensionId + ".exe"); 277 extensionAssembly = Path.Combine(extensionFolder, extensionId + ".exe");
276 present = File.Exists(extensionAssembly); 278 present = File.Exists(extensionAssembly);
277 } 279 }
278 280
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
index 88b8a953..7cfd4999 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
@@ -201,6 +201,7 @@ namespace WixToolsetTest.CoreIntegration
201 result.AssertSuccess(); 201 result.AssertSuccess();
202 var output = result.Messages.Select(m => m.ToString()).Single(); 202 var output = result.Messages.Select(m => m.ToString()).Single();
203 Assert.StartsWith("WixToolset.UI.wixext 4.", output); 203 Assert.StartsWith("WixToolset.UI.wixext 4.", output);
204 Assert.DoesNotContain("damaged", output);
204 205
205 result = WixRunner.Execute(new[] 206 result = WixRunner.Execute(new[]
206 { 207 {