From 860676fa5b40a1904478151e9b4934c004e7db63 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 7 Oct 2019 11:18:13 -0700 Subject: Implement Bundle build --- src/WixToolset.Core/Bind/ExtractEmbeddedFiles.cs | 8 ++++---- src/WixToolset.Core/Bind/FileResolver.cs | 8 +++++++- src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) (limited to 'src/WixToolset.Core/Bind') diff --git a/src/WixToolset.Core/Bind/ExtractEmbeddedFiles.cs b/src/WixToolset.Core/Bind/ExtractEmbeddedFiles.cs index c6e21973..644e5c63 100644 --- a/src/WixToolset.Core/Bind/ExtractEmbeddedFiles.cs +++ b/src/WixToolset.Core/Bind/ExtractEmbeddedFiles.cs @@ -30,10 +30,10 @@ namespace WixToolset.Core.Bind { // If the uri to the file that contains the embedded file does not already have embedded files // being extracted, create the dictionary to track that. - if (!filesWithEmbeddedFiles.TryGetValue(uri, out var extracts)) + if (!this.filesWithEmbeddedFiles.TryGetValue(uri, out var extracts)) { extracts = new SortedList(); - filesWithEmbeddedFiles.Add(uri, extracts); + this.filesWithEmbeddedFiles.Add(uri, extracts); } // If the embedded file is not already tracked in the dictionary of extracts, add it. @@ -52,7 +52,7 @@ namespace WixToolset.Core.Bind public IEnumerable GetExpectedEmbeddedFiles() { - foreach (var uriWithExtracts in filesWithEmbeddedFiles) + foreach (var uriWithExtracts in this.filesWithEmbeddedFiles) { foreach (var extracts in uriWithExtracts.Value) { @@ -68,7 +68,7 @@ namespace WixToolset.Core.Bind public IEnumerable GetExtractFilesForUri(Uri uri) { - if (!filesWithEmbeddedFiles.TryGetValue(uri, out var extracts)) + if (!this.filesWithEmbeddedFiles.TryGetValue(uri, out var extracts)) { extracts = new SortedList(); } diff --git a/src/WixToolset.Core/Bind/FileResolver.cs b/src/WixToolset.Core/Bind/FileResolver.cs index a67d784d..b1676fad 100644 --- a/src/WixToolset.Core/Bind/FileResolver.cs +++ b/src/WixToolset.Core/Bind/FileResolver.cs @@ -70,11 +70,17 @@ namespace WixToolset.Core.Bind /// Optional type of source file being resolved. /// Optional source line of source file being resolved. /// The binding stage used to determine what collection of bind paths will be used + /// Optional collection of paths already checked. /// Should return a valid path for the stream to be imported. - public string ResolveFile(string source, IntermediateTupleDefinition tupleDefinition, SourceLineNumber sourceLineNumbers, BindStage bindStage) + public string ResolveFile(string source, IntermediateTupleDefinition tupleDefinition, SourceLineNumber sourceLineNumbers, BindStage bindStage, IEnumerable alreadyCheckedPaths = null) { var checkedPaths = new List(); + if (alreadyCheckedPaths != null) + { + checkedPaths.AddRange(alreadyCheckedPaths); + } + foreach (var extension in this.ResolverExtensions) { var resolved = extension.ResolveFile(source, tupleDefinition, sourceLineNumbers, bindStage); diff --git a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs index bec03907..22710aca 100644 --- a/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs +++ b/src/WixToolset.Core/Bind/ResolveDelayedFieldsCommand.cs @@ -113,7 +113,7 @@ namespace WixToolset.Core.Bind } } - public static string ResolveDelayedVariables(SourceLineNumber sourceLineNumbers, string value, IDictionary resolutionData) + private static string ResolveDelayedVariables(SourceLineNumber sourceLineNumbers, string value, IDictionary resolutionData) { var matches = Common.WixVariableRegex.Matches(value); -- cgit v1.2.3-55-g6feb