diff options
author | Bob Arnson <bob@firegiant.com> | 2020-02-21 19:31:01 -0500 |
---|---|---|
committer | Bob Arnson <bob@firegiant.com> | 2020-02-21 19:40:41 -0500 |
commit | 752c7593613d72bd2d0da88508b5b3e9e0857286 (patch) | |
tree | 4fa917e05edf297c721a1ceca925682429896d52 | |
parent | 34ef0f821f84d4598df14cd8e2f863248eddc325 (diff) | |
download | wix-752c7593613d72bd2d0da88508b5b3e9e0857286.tar.gz wix-752c7593613d72bd2d0da88508b5b3e9e0857286.tar.bz2 wix-752c7593613d72bd2d0da88508b5b3e9e0857286.zip |
Early detection of duplicate table definitions from extensions.
-rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | 2 | ||||
-rw-r--r-- | src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs | 11 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs index 167e0bb0..fecf3efd 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs | |||
@@ -111,7 +111,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
111 | // Load standard tables, authored custom tables, and extension custom tables. | 111 | // Load standard tables, authored custom tables, and extension custom tables. |
112 | TableDefinitionCollection tableDefinitions; | 112 | TableDefinitionCollection tableDefinitions; |
113 | { | 113 | { |
114 | var command = new LoadTableDefinitionsCommand(section, this.BackendExtensions); | 114 | var command = new LoadTableDefinitionsCommand(this.Messaging, section, this.BackendExtensions); |
115 | command.Execute(); | 115 | command.Execute(); |
116 | 116 | ||
117 | tableDefinitions = command.TableDefinitions; | 117 | tableDefinitions = command.TableDefinitions; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs index 1aa4065e..fe13391b 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs | |||
@@ -10,15 +10,19 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
10 | using WixToolset.Data.Tuples; | 10 | using WixToolset.Data.Tuples; |
11 | using WixToolset.Data.WindowsInstaller; | 11 | using WixToolset.Data.WindowsInstaller; |
12 | using WixToolset.Extensibility; | 12 | using WixToolset.Extensibility; |
13 | using WixToolset.Extensibility.Services; | ||
13 | 14 | ||
14 | internal class LoadTableDefinitionsCommand | 15 | internal class LoadTableDefinitionsCommand |
15 | { | 16 | { |
16 | public LoadTableDefinitionsCommand(IntermediateSection section, IEnumerable<IWindowsInstallerBackendBinderExtension> backendExtensions) | 17 | public LoadTableDefinitionsCommand(IMessaging messaging, IntermediateSection section, IEnumerable<IWindowsInstallerBackendBinderExtension> backendExtensions) |
17 | { | 18 | { |
19 | this.Messaging = messaging; | ||
18 | this.Section = section; | 20 | this.Section = section; |
19 | this.BackendExtensions = backendExtensions; | 21 | this.BackendExtensions = backendExtensions; |
20 | } | 22 | } |
21 | 23 | ||
24 | public IMessaging Messaging { get; } | ||
25 | |||
22 | private IntermediateSection Section { get; } | 26 | private IntermediateSection Section { get; } |
23 | 27 | ||
24 | private IEnumerable<IWindowsInstallerBackendBinderExtension> BackendExtensions { get; } | 28 | private IEnumerable<IWindowsInstallerBackendBinderExtension> BackendExtensions { get; } |
@@ -39,6 +43,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
39 | { | 43 | { |
40 | foreach (var tableDefinition in backendExtension.TableDefinitions) | 44 | foreach (var tableDefinition in backendExtension.TableDefinitions) |
41 | { | 45 | { |
46 | if (tableDefinitions.Contains(tableDefinition.Name)) | ||
47 | { | ||
48 | this.Messaging.Write(ErrorMessages.DuplicateExtensionTable(backendExtension.GetType().Assembly.Location, tableDefinition.Name)); | ||
49 | } | ||
50 | |||
42 | tableDefinitions.Add(tableDefinition); | 51 | tableDefinitions.Add(tableDefinition); |
43 | } | 52 | } |
44 | } | 53 | } |