From dad29a9c5986fe30ae6992668019e5bbca446ed0 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 3 Feb 2022 04:51:38 -0800 Subject: Small bits of code clean-up --- .../WixToolset.BuildTasks/ResolveWixReferences.cs | 54 +++++++++------------- src/wix/WixToolset.Sdk/tools/wix.props | 2 - src/wix/WixToolset.Sdk/tools/wix.targets | 19 ++------ 3 files changed, 27 insertions(+), 48 deletions(-) diff --git a/src/wix/WixToolset.BuildTasks/ResolveWixReferences.cs b/src/wix/WixToolset.BuildTasks/ResolveWixReferences.cs index 9b8cfe6f..8d8db428 100644 --- a/src/wix/WixToolset.BuildTasks/ResolveWixReferences.cs +++ b/src/wix/WixToolset.BuildTasks/ResolveWixReferences.cs @@ -31,11 +31,7 @@ namespace WixToolset.BuildTasks /// The list of references to resolve. /// [Required] - public ITaskItem[] WixReferences - { - get; - set; - } + public ITaskItem[] WixReferences { get; set; } /// /// The directories or special locations that are searched to find the files @@ -57,30 +53,18 @@ namespace WixToolset.BuildTasks /// {RawFileName}: Specifies the task will consider the Include value of the item to be /// an exact path and file name. /// - public string[] SearchPaths - { - get; - set; - } + public string[] SearchPaths { get; set; } /// /// The filename extension(s) to be checked when searching. /// - public string[] SearchFilenameExtensions - { - get; - set; - } + public string[] SearchFilenameExtensions { get; set; } /// /// Output items that contain the same metadata as input references and have been resolved to full paths. /// [Output] - public ITaskItem[] ResolvedWixReferences - { - get; - private set; - } + public ITaskItem[] ResolvedWixReferences { get; private set; } /// /// Resolves reference paths by searching for referenced items using the specified SearchPaths. @@ -88,14 +72,22 @@ namespace WixToolset.BuildTasks /// True on success, or throws an exception on failure. public override bool Execute() { - List resolvedReferences = new List(); + var resolvedReferences = new List(); + var uniqueReferences = new HashSet(StringComparer.OrdinalIgnoreCase); - foreach (ITaskItem reference in this.WixReferences) + foreach (var reference in this.WixReferences) { - ITaskItem resolvedReference = ResolveWixReferences.ResolveReference(reference, this.SearchPaths, this.SearchFilenameExtensions, this.Log); + var resolvedReference = ResolveWixReferences.ResolveReference(reference, this.SearchPaths, this.SearchFilenameExtensions, this.Log); - this.Log.LogMessage(MessageImportance.Low, "Resolved path {0}", resolvedReference.ItemSpec); - resolvedReferences.Add(resolvedReference); + if (uniqueReferences.Add(resolvedReference.ItemSpec)) + { + this.Log.LogMessage(MessageImportance.Low, "Resolved path {0}", resolvedReference.ItemSpec); + resolvedReferences.Add(resolvedReference); + } + else + { + this.Log.LogMessage(MessageImportance.Low, "Resolved duplicate path {0}, discarding it", resolvedReference.ItemSpec); + } } this.ResolvedWixReferences = resolvedReferences.ToArray(); @@ -130,16 +122,16 @@ namespace WixToolset.BuildTasks } // Copy all the metadata from the source - TaskItem resolvedReference = new TaskItem(reference); + var resolvedReference = new TaskItem(reference); log.LogMessage(MessageImportance.Low, "WixReference: {0}", reference.ItemSpec); // Now find the resolved path based on our order of precedence - foreach (string searchPath in searchPaths) + foreach (var searchPath in searchPaths) { log.LogMessage(MessageImportance.Low, "Trying {0}", searchPath); if (searchPath.Equals(HintPathToken, StringComparison.Ordinal)) { - string path = reference.GetMetadata("HintPath"); + var path = reference.GetMetadata("HintPath"); log.LogMessage(MessageImportance.Low, "Trying path {0}", path); if (File.Exists(path)) { @@ -163,7 +155,7 @@ namespace WixToolset.BuildTasks } else { - string path = Path.Combine(searchPath, Path.GetFileName(reference.ItemSpec)); + var path = Path.Combine(searchPath, Path.GetFileName(reference.ItemSpec)); log.LogMessage(MessageImportance.Low, "Trying path {0}", path); if (File.Exists(path)) { @@ -195,9 +187,9 @@ namespace WixToolset.BuildTasks /// True if the item was resolved, else false. private static bool ResolveFilenameExtensions(ITaskItem reference, string basePath, string[] filenameExtensions, TaskLoggingHelper log) { - foreach (string filenameExtension in filenameExtensions) + foreach (var filenameExtension in filenameExtensions) { - string path = basePath + filenameExtension; + var path = basePath + filenameExtension; log.LogMessage(MessageImportance.Low, "Trying path {0}", path); if (File.Exists(path)) { diff --git a/src/wix/WixToolset.Sdk/tools/wix.props b/src/wix/WixToolset.Sdk/tools/wix.props index 0f7cf469..6a7f353d 100644 --- a/src/wix/WixToolset.Sdk/tools/wix.props +++ b/src/wix/WixToolset.Sdk/tools/wix.props @@ -16,8 +16,6 @@ - Debug;Release - x86,x64,ARM64,AnyCPU Debug diff --git a/src/wix/WixToolset.Sdk/tools/wix.targets b/src/wix/WixToolset.Sdk/tools/wix.targets index b9bacb42..a04c1ec9 100644 --- a/src/wix/WixToolset.Sdk/tools/wix.targets +++ b/src/wix/WixToolset.Sdk/tools/wix.targets @@ -70,7 +70,6 @@ Package - x86,x64,ARM64,AnyCPU full @@ -377,12 +376,7 @@ DependsOnTargets="$(ResolveWixLibraryReferencesDependsOn)"> - - $(ReferencePaths); - {HintPathFromItem}; - {RawFileName}; - $(WixExtDir) - + $(ReferencePaths);{HintPathFromItem};{RawFileName};$(WixExtDir) - - - + + $(ReferencePaths);{HintPathFromItem};{RawFileName};$(WixExtDir) +