diff options
author | Rob Mensching <rob@firegiant.com> | 2019-01-01 00:26:30 -0800 |
---|---|---|
committer | Rob Mensching <rob@robmensching.com> | 2019-01-01 09:58:27 -0800 |
commit | 41622a07f82c57cf3d80393b0b6914f5ccb76e33 (patch) | |
tree | 8b42a4903f4a98161b44049dd7f73721de6011b0 /src/WixToolset.Core | |
parent | e8cb78045d7d03b5014e1e6d781b71165db9b17d (diff) | |
download | wix-41622a07f82c57cf3d80393b0b6914f5ccb76e33.tar.gz wix-41622a07f82c57cf3d80393b0b6914f5ccb76e33.tar.bz2 wix-41622a07f82c57cf3d80393b0b6914f5ccb76e33.zip |
Load .wixlib intermediates with single creator
Using a single creator ensures definitions are shared and consistent
across the entire build.
Diffstat (limited to 'src/WixToolset.Core')
-rw-r--r-- | src/WixToolset.Core/CommandLine/BuildCommand.cs | 31 | ||||
-rw-r--r-- | src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs | 7 |
2 files changed, 17 insertions, 21 deletions
diff --git a/src/WixToolset.Core/CommandLine/BuildCommand.cs b/src/WixToolset.Core/CommandLine/BuildCommand.cs index 87a3cd30..f754c876 100644 --- a/src/WixToolset.Core/CommandLine/BuildCommand.cs +++ b/src/WixToolset.Core/CommandLine/BuildCommand.cs | |||
@@ -331,27 +331,20 @@ namespace WixToolset.Core.CommandLine | |||
331 | 331 | ||
332 | private IEnumerable<Intermediate> LoadLibraries(IEnumerable<string> libraryFiles, ITupleDefinitionCreator creator) | 332 | private IEnumerable<Intermediate> LoadLibraries(IEnumerable<string> libraryFiles, ITupleDefinitionCreator creator) |
333 | { | 333 | { |
334 | var libraries = new List<Intermediate>(); | 334 | try |
335 | |||
336 | foreach (var libraryFile in libraryFiles) | ||
337 | { | 335 | { |
338 | try | 336 | return Intermediate.Load(libraryFiles, creator); |
339 | { | 337 | } |
340 | var library = Intermediate.Load(libraryFile, creator); | 338 | catch (WixCorruptFileException e) |
341 | 339 | { | |
342 | libraries.Add(library); | 340 | this.Messaging.Write(e.Error); |
343 | } | 341 | } |
344 | catch (WixCorruptFileException e) | 342 | catch (WixUnexpectedFileFormatException e) |
345 | { | 343 | { |
346 | this.Messaging.Write(e.Error); | 344 | this.Messaging.Write(e.Error); |
347 | } | ||
348 | catch (WixUnexpectedFileFormatException e) | ||
349 | { | ||
350 | this.Messaging.Write(e.Error); | ||
351 | } | ||
352 | } | 345 | } |
353 | 346 | ||
354 | return libraries; | 347 | return Array.Empty<Intermediate>(); |
355 | } | 348 | } |
356 | 349 | ||
357 | private IEnumerable<Localization> LoadLocalizationFiles(IEnumerable<string> locFiles, IDictionary<string, string> preprocessorVariables) | 350 | private IEnumerable<Localization> LoadLocalizationFiles(IEnumerable<string> locFiles, IDictionary<string, string> preprocessorVariables) |
@@ -437,7 +430,7 @@ namespace WixToolset.Core.CommandLine | |||
437 | public string OutputsFile { get; private set; } | 430 | public string OutputsFile { get; private set; } |
438 | 431 | ||
439 | public string BuiltOutputsFile { get; private set; } | 432 | public string BuiltOutputsFile { get; private set; } |
440 | 433 | ||
441 | public CommandLine(IMessaging messaging) | 434 | public CommandLine(IMessaging messaging) |
442 | { | 435 | { |
443 | this.Messaging = messaging; | 436 | this.Messaging = messaging; |
diff --git a/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs b/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs index b442da2b..e223e3a4 100644 --- a/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs +++ b/src/WixToolset.Core/ExtensibilityServices/TupleDefinitionCreator.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. |
2 | 2 | ||
3 | namespace WixToolset.Core.ExtensibilityServices | 3 | namespace WixToolset.Core.ExtensibilityServices |
4 | { | 4 | { |
@@ -23,7 +23,10 @@ namespace WixToolset.Core.ExtensibilityServices | |||
23 | 23 | ||
24 | public void AddCustomTupleDefinition(IntermediateTupleDefinition definition) | 24 | public void AddCustomTupleDefinition(IntermediateTupleDefinition definition) |
25 | { | 25 | { |
26 | this.CustomDefinitionByName.Add(definition.Name, definition); | 26 | if (!this.CustomDefinitionByName.TryGetValue(definition.Name, out var existing) || definition.Revision > existing.Revision) |
27 | { | ||
28 | this.CustomDefinitionByName[definition.Name] = definition; | ||
29 | } | ||
27 | } | 30 | } |
28 | 31 | ||
29 | public bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition) | 32 | public bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition) |